Есть ли способ просто сделать это снова, когда не получится?
Да. Вы можете использовать команду 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": ""
}
]
}
Код можно вставить во вкладку исходный код .