Можно ли создавать зацикленные задачи в SeleniumIDE ++ / Kantu, где начинается следующая задача, если последняя не удалась вместо остановки всего? - PullRequest
0 голосов
/ 19 июня 2019

Моя задача / бот попадает на случайные веб-сайты, и как бы я ни старался предотвратить сбои, их будет несколько.

Однако я могу сказать, что мой бот работает в 70% случаев.Я зацикливаю проект, но когда он терпит неудачу, он выходит из цикла (я имею в виду запуск задачи в виде цикла, а не цикла, в то время как он применяется к обоим)

Есть ли способ просто заставить его пойти снова при неудаче?

1 Ответ

0 голосов
/ 19 июня 2019

Есть ли способ просто сделать это снова, когда не получится?

Да. Вы можете использовать команду OnError , чтобы перезапустить цикл, если что-то пойдет не так (например, элемент не найден, веб-страница не загружена, ...).

Вот пример макроса:

Если произошла ошибка, макрос переходит на метку restart_loop и повторяет текущий цикл.

{
  "Name": "restart1",
  "CreationDate": "2019-6-19",
  "Commands": [
    {
      "Command": "onError",
      "Target": "#goto",
      "Value": "restart_loop"
    },
    {
      "Command": "store",
      "Target": "fast",
      "Value": "!replayspeed"
    },
    {
      "Command": "store",
      "Target": "15",
      "Value": "!TIMEOUT_WAIT"
    },
    {
      "Command": "store",
      "Target": "60",
      "Value": "!TIMEOUT_PAGELOAD"
    },
    {
      "Command": "store",
      "Target": "1",
      "Value": "i"
    },
    {
      "Command": "label",
      "Target": "restart_loop",
      "Value": ""
    },
    {
      "Command": "if_v2",
      "Target": "${!statusOK} == false",
      "Value": ""
    },
    {
      "Command": "echo",
      "Target": "ERROR!!! => restart from top, loop=${i}, status=${!statusOK}",
      "Value": "blue"
    },
    {
      "Command": "store",
      "Target": "true",
      "Value": "!statusOK"
    },
    {
      "Command": "end",
      "Target": "",
      "Value": ""
    },
    {
      "Command": "label",
      "Target": "start",
      "Value": ""
    },
    {
      "Command": "open",
      "Target": "https://docs.google.com/forms/d/e/1FAIpQLScP-K8zi-9ar0MCq93D3VIFhegSNPveBfdLqiMfTYR9Q1iSKQ/viewform",
      "Value": ""
    },
    {
      "Command": "click",
      "Target": "//span[contains(text(),\"UI.Vision IDE\")]",
      "Value": ""
    },
    {
      "Command": "click",
      "Target": "//*[text()[contains(.,'Web Testing')]]",
      "Value": ""
    },
    {
      "Command": "clickAndWait",
      "Target": "css=span.quantumWizButtonPaperbuttonLabel.exportLabel",
      "Value": ""
    },
    {
      "Command": "type",
      "Target": "name=entry.1572386418",
      "Value": "this is loop ${i}"
    },
    {
      "Command": "clickAndWait",
      "Target": "//*[@id=\"mG61Hd\"]/div/div[2]/div[3]/div[1]/div[1]/div[2]/div[2]",
      "Value": ""
    },
    {
      "Command": "echo",
      "Target": "done with ${i}",
      "Value": "green"
    },
    {
      "Command": "executeScript_Sandbox",
      "Target": "return Number (${i}) +  Number(1)",
      "Value": "i"
    },
    {
      "Command": "gotoLabel",
      "Target": "start",
      "Value": ""
    }
  ]
}

Код можно вставить во вкладку исходный код .

...