Наверное, почти каждый, кто пробовал писать тесты на Selenium, знаком с explicit wait и implicit wait.
Но иногда их не хватает, да и хочется чтобы тесты работали быстро.
Еще есть AJAX и скрипты, которые подгружают контент только при скроле странички и не дают нам успокоиться просто установкой таймаутов. Нужно что-то еще.
Конечно, для каждого случая тут можно придумать "свое решение" (что чаще всего и делают).
Здесь хочу поделиться хорошей ссылкой, как один инженер уже решил такую задачу для себя (и почему эта проблема возникла у него):
https://blog.codeship.com/get-selenium-to-wait-for-page-load/
Мое решение я сделал в виде функции, может, и не самой красивой, но у страничек почти не остается шансов незагрузить весь свой контент (для загрузки картинок, конечно, нужна дополнительная магия и она тоже есть в виде отдельной функции).
Логика простая - скролим страничку и с помощью выполнения JavaScript дожидаемся загрузки странички и каждой картинки на страничке.
Такую функцию можно использовать для элементарных тестов на время загрузки страниц в браузере (с учетом времени на рендеринг страницы и загрузку всех картинок)
Код доступен здесь: https://github.com/TimurNurlygayanov/test-tasks-example/blob/master/selenium_wait.py
Комментарии и предложения о том, как можно сделать лучше, приветвуются )).
Но иногда их не хватает, да и хочется чтобы тесты работали быстро.
Еще есть AJAX и скрипты, которые подгружают контент только при скроле странички и не дают нам успокоиться просто установкой таймаутов. Нужно что-то еще.
Конечно, для каждого случая тут можно придумать "свое решение" (что чаще всего и делают).
Здесь хочу поделиться хорошей ссылкой, как один инженер уже решил такую задачу для себя (и почему эта проблема возникла у него):
https://blog.codeship.com/get-selenium-to-wait-for-page-load/
Мое решение я сделал в виде функции, может, и не самой красивой, но у страничек почти не остается шансов незагрузить весь свой контент (для загрузки картинок, конечно, нужна дополнительная магия и она тоже есть в виде отдельной функции).
Логика простая - скролим страничку и с помощью выполнения JavaScript дожидаемся загрузки странички и каждой картинки на страничке.
Такую функцию можно использовать для элементарных тестов на время загрузки страниц в браузере (с учетом времени на рендеринг страницы и загрузку всех картинок)
Код доступен здесь: https://github.com/TimurNurlygayanov/test-tasks-example/blob/master/selenium_wait.py
Комментарии и предложения о том, как можно сделать лучше, приветвуются )).
Комментариев нет:
Отправить комментарий
Я признателен Вам за то, что делитесь своим мнением