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
Другие вопросы по тегам