Size: a a a

testing_in_python

2020 April 27

В

Виталий in testing_in_python
Здравствуйте, подскажите пожалуйста как можно дождаться конца подгрузки на странице клиент рендера на селениуме?
источник

Н

Нурсултан in testing_in_python
Виталий
Здравствуйте, подскажите пожалуйста как можно дождаться конца подгрузки на странице клиент рендера на селениуме?
источник

В

Виталий in testing_in_python
🙏 спасибо
источник

В

Виталий in testing_in_python
Не помогло. Может я не так изъяснялся. Страница уже загружена. В блоке 400 моделей автомобилей. Я выбираю год 2004 автомобилей в блоке остаётся 200. Но скрипт быстро отрабатывает и мне все равно возвращает 400 елементов, не могу найти вариант дождаться 200 элементов.
источник

Н

Нурсултан in testing_in_python
Виталий
Не помогло. Может я не так изъяснялся. Страница уже загружена. В блоке 400 моделей автомобилей. Я выбираю год 2004 автомобилей в блоке остаётся 200. Но скрипт быстро отрабатывает и мне все равно возвращает 400 елементов, не могу найти вариант дождаться 200 элементов.
ну у этого элемента явно изменяется какой-то стейт, либо на него крепись, либо пиши вейтер свой
источник

Н

Нурсултан in testing_in_python
через контекстные менеджеры например
источник

Н

Нурсултан in testing_in_python
чего-нибудь типа
with wait_value_attr_change(to=200):
   element.click
источник

EB

Evgenii B in testing_in_python
Зачем тут контекстный менеджер?
источник

EB

Evgenii B in testing_in_python
Какие операции нужно делать, если клик фейлится?
источник

Н

Нурсултан in testing_in_python
да, ты прав, никаких
источник

EB

Evgenii B in testing_in_python
Более того, селениум не даёт никаких колбеков состояния после клика
источник

В

Виталий in testing_in_python
Получается у селениуме нет способов проверить когда дозагрузиться клиент рендер. Только sleep?
источник

M

Merg in testing_in_python
через JS попробуй
источник

M

Merg in testing_in_python
def page_has_loaded(self):
   page_state = self.driver.execute_script('return document.readyState;')
   return page_state == 'complete'
источник

Н

Нурсултан in testing_in_python
Виталий
Получается у селениуме нет способов проверить когда дозагрузиться клиент рендер. Только sleep?
у нас реализовано через собственный вейтер. типа поллим значение, которое видим, в течение н времени, пока оно не станет х. если не стало - падаем
источник

Н

Нурсултан in testing_in_python
из коробки в селениуме такого нет, емнип, нужно написать самому
источник

В

Виталий in testing_in_python
Merg
def page_has_loaded(self):
   page_state = self.driver.execute_script('return document.readyState;')
   return page_state == 'complete'
Пробовал, не помогает, это при загрузке страницы, а когда идёт подгрузка кл рендера не помогло
источник

Д

Дмитрий in testing_in_python
Sleep это зашквар полный)
источник

EB

Evgenii B in testing_in_python
в современных js-injected приложениях едва ли можно доподлино знать, когда загрузилась "страница", потому что сама суть "что такое страница" изменилась
источник

В

Виталий in testing_in_python
Нурсултан
из коробки в селениуме такого нет, емнип, нужно написать самому
Спасибо, значит буду что то придумывать или использовать sleep
источник