Robot Framework Selenium2Library - как остановить зависание страницы браузера на ответе сервера
Мои тесты Robot Framework с Selenium2Library иногда застревают в ожидании страницы браузера, чтобы полностью загрузить ответ сервера, что иногда приводит к зависанию тестов на неопределенное время. В большинстве случаев, с которыми я сталкиваюсь, браузер загрузил 99% контента и может нормально взаимодействовать. Однако автоматизация не будет продолжена, пока загрузка браузера не остановится полностью.
Когда я наблюдаю за запуском тестов автоматизации и сталкиваюсь с этой проблемой зависания браузера, если я вручную нажимаю кнопку "Стоп" браузера, браузер перестает загружаться и тесты автоматизации возобновляются как обычно. Я хотел бы автоматизировать эту остановку браузера в ситуациях, когда браузер зависает, но не должен замедлять тесты, когда браузер загружается, как ожидалось.
Я вижу, что в Python есть команда Selenium Webdriver set_page_load_timeout()
Похоже, это может быть то, что я ищу, если я могу понять, как использовать его в Robot Framework.
Другой вариант, на который я смотрел, - это выполнение javascript для принудительной остановки загрузки браузера, например:
***Keywords***
Stop browser load
Execute Javascript return window.stop();
Однако с такой командой, как приведенная выше, возникает вопрос, как ее реализовать и распознать, когда загрузка браузера занимает слишком много времени. Я не хочу устанавливать ненужные тайм-ауты при каждой загрузке новой страницы или нажатии на ссылку, так как это приведет к замедлению общего выполнения тестов.
Имеется ли в Selenium2Library Robot Framework что-то подобное, где вы можете установить фактическое время загрузки страницы ответа сервера, чтобы тесты могли распознавать, когда браузер все еще находится в состоянии загрузки? Я просматривал документацию Selenium2Library и не нашел ничего, что напрямую связано с этим.
Любая помощь будет принята с благодарностью, спасибо.
1 ответ
Вы можете использовать Robotframework Timeout. Вы можете указать время ожидания в настройках или в ключевом слове.
Ключевое слово:
*** Keywords ***
Timed Keyword
[Documentation] Set only the timeout value and not the custom message.
[Timeout] 1 minute 42 seconds
Do Something
Do Something Else
В настройках:
*** Settings ***
Test Timeout 5 seconds