Мои тесты Robot Framework с Selenium2Library иногда застревают в ожидании страницы браузера, чтобы полностью загрузить ответ сервера, что заставляет тесты время от времени зависать. В большинстве случаев, с которыми я столкнулся, браузер загрузил 99% содержимого и может взаимодействовать с ним просто отлично. Однако автоматизация не будет продолжаться до тех пор, пока загрузка браузера не завершится полностью.Robot Framework Selenium2Library - как остановить страницу браузера, зависающую на ответе сервера
Когда я просматривал тесты автоматизации и сталкивался с этой проблемой виджета браузера, если я вручную нажимаю кнопку браузера «Остановить», браузер перестает загружаться, и тесты автоматизации возобновляются как обычно. Я хотел бы автоматизировать эту остановку браузера в ситуациях, когда браузер зависает, но не замедляет тесты при загрузке браузера, как ожидалось.
Я вижу, что в Python есть команда Selenium Webdriver под названием set_page_load_timeout()
, которая выглядит так, как будто это может быть то, что я ищу, если я смогу понять, как ее использовать в Robot Framework.
Другой вариант я смотрел на это выполнение JavaScript, чтобы заставить остановить загрузку браузера, например, так:
***Keywords***
Stop browser load
Execute Javascript return window.stop();
Однако с помощью команды один из приведенных выше, возникает вопрос о том, как реализовать его и узнайте, когда загрузка браузера занимает слишком много времени. Я не хочу устанавливать лишние таймауты для каждого раза, когда загружается новая страница или нажимается ссылка, поскольку это приведет к замедлению общего запуска тестов.
В библиотеке Selenium2Library от Robot Framework есть что-то вроде этого уже встроенного, где вы можете установить фактическое время загрузки страницы ответа сервера, чтобы тесты могли распознать, когда браузер все еще находится в состоянии загрузки? Я рассматриваю Selenium2Library documentation и не нашел ничего, что напрямую связано с этим.
Любая помощь будет принята с благодарностью, спасибо.
Это полезно и частично то, что я ищу, но, к сожалению, кажется, это приведет к ошибке только в случае, если ti mer заканчивается, в то время как я хотел бы иметь возможность обернуть таймер во что-то вроде try, за исключением того, что я могу запустить команду остановки Windows, а затем запустить тестовый пример. – chmcc
Я изучил использование ключевого слова «Встроенная библиотека» «Запустить ключевое слово, если произошло таймаут», несмотря на то, что документация указывает, что он будет работать только с разрывом, и, к сожалению, для моего сценария это ключевое слово не будет работать. Мне придется продолжать искать. – chmcc
yup, это приведет к тому, что наш тест завершится неудачно, если до истечения таймаута тест не завершится ... и когда это произойдет, мы сможем использовать команду «re-runfailed» для повторного запуска неудавшегося теста. Пример здесь: http://laurent.bristiel.com/re-executing-failed-test-cases-and-merging-outputs-with-robot-framework/ Надейтесь, что это поможет вам :) –