How to automate scheduling my coronavirus vaccine shot appointment?

Interesting question. Indeed, the website uses non-custom select boxes/dropdowns. So the task is similar to Kwfinder.com dropdown selection - #2 by TechSupport

Observations:

(1) Find select element: Use good XPath => Here a good and stable XPath is an XPath that does not contain the changing ID:

image

(2) CLICK opens the dropdown, but then it not ready for keyboard ENTER. => So we must use XClick to open the dropdown. Then use one or more KEY_DOWN to make the selection.

(3) We use visualSearch to check if the “Es wurden keine freien Termine in Ihrer Region gefunden. Bitte probieren Sie es später erneut.” warning appears. If yes, then no slot is available.

Macro running:

Complete macro:

{
  "Name": "wait-for-slot",
  "CreationDate": "2021-4-7",
  "Commands": [
    {
      "Command": "open",
      "Target": "https://www.impfterminservice.de/impftermine",
      "Value": ""
    },
    {
      "Command": "XClick",
      "Target": "xpath=//span[2]/span/span/span",
      "Value": ""
    },
    {
      "Command": "XType",
      "Target": "${KEY_ENTER}",
      "Value": ""
    },
    {
      "Command": "XClick",
      "Target": "xpath=//div[2]/label/span[2]/span/span/span",
      "Value": ""
    },
    {
      "Command": "XType",
      "Target": "${KEY_ENTER}",
      "Value": ""
    },
    {
      "Command": "clickAndWait",
      "Target": "xpath=/html/body/app-root/div/app-page-its-center/div/div[2]/div/div/div/div/form/div[4]/button",
      "Value": ""
    },
    {
      "Command": "click",
      "Target": "xpath=/html/body/app-root/div/app-page-its-login/div/div/div[2]/app-its-login-user/div/div/app-corona-vaccination/div[2]/div/div/label[2]/span",
      "Value": ""
    },
    {
      "Command": "visualSearch",
      "Target": "keineTermine2_dpi_168.png@0.90",
      "Value": "no_slot_message"
    },
    {
      "Command": "if_v2",
      "Target": "${no_slot_message} == 0",
      "Value": ""
    },
    {
      "Command": "echo",
      "Target": "Yes, book now",
      "Value": "green"
    },
    {
      "Command": "else",
      "Target": "",
      "Value": ""
    },
    {
      "Command": "echo",
      "Target": "Please wait and try again later",
      "Value": "blue"
    },
    {
      "Command": "end",
      "Target": "",
      "Value": ""
    }
  ]
}

PS: UIvision RPA software is used by UK NHS vaccination sites to speed up the vaccination process. And now it is also used to make vaccination appointments faster :wink: