Robot Framework: дождитесь исчезновения элемента - PullRequest
0 голосов
/ 30 ноября 2018

Я запускаю тест, в котором я должен отклонить предупреждение, которое является DIV, которое перекрывает всю страницу.Сначала я посылаю щелчок по кнопке, которая добавляет что-то, затем отображается предупреждение.Наконец, я ввожу строку в поле

Код выглядит примерно так

SeleniumLibrary.Click element  add_button
Wait Until Element is visible  warning-overlay-div
SeleniumLibrary.Click element  dismiss-warning
SeleniumLibrary.Click element  something-else

Запуск этого кода приводит к сообщению об ошибке:

WebDriverException: Сообщение: неизвестная ошибка: Элемент <input type="text" class="upperCaseClass modified" id="something-else" maxlength="15" style="width: 143px; text-transform: uppercase;"> is not clickable at point (230, 679). Other element would receive the click: <div class="warning-overlay-div" style="width: 100%; height: 853px; z-index: 2003;"></div>

То есть я не могу нажать что-то еще , потому что warning-overlay-div находится сверху

Хорошо, поэтому я добавил проверку, чтобы убедиться, что warning-overlay-div прошел между щелчком dismiss-warning и нажатием на что-то-то еще .Я пробовал несколько вариантов, но все эти три дают один и тот же результат

(из журнала)

00:00:15.050KEYWORD SeleniumLibrary . Wait Until Element Is Not Visible ${warning-overlay-div}
00:00:15.003KEYWORD SeleniumLibrary . Wait Until Page Does Not Contain ${warning-overlay-div}
00:00:15.039KEYWORD SeleniumLibrary . Wait Until Page Does Not Contain Element ${warning-overlay-div}

Это может занять около полсекунды, чтобы наложение исчезло, но, как вы можетевидите, все они ждут, пока не истечет время ожидания через 15 секунд, прежде чем они вернутся к успеху.Я хочу продолжить, как только пропадет warning-overlay-div , а не ждать 15 секунд для этого.

Как проверить, что это наложение пропало, а затем сразу продолжить?

1 Ответ

0 голосов
/ 01 декабря 2018

Вы можете попытаться использовать «Wait To Keyword Succeeds», позволяя себе настраивать время ожидания повторной попытки.Особенно полезно, если вы хотите, чтобы предупреждение было удалено с дисплея в течение соответствующего времени.

 Wait Until Keyword Succeeds  ${retry}  ${retry-interval}  Element Should Not Be Visible  ${warning-overlay-div}   

$ {retry} = общее время выполнения проверки

$ {интервал повторных попыток} = время между каждой повторной попыткой

Форматы времени

(я бы сделал это простокомментарий, но я не могу, пока у меня не будет 50rep - это то, что стоит попробовать)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...