как мне правильно использовать Wait в robotframework

robot-framework
webdriver
Теги: #<Tag:0x00007fedc41cda18> #<Tag:0x00007fedc41cd8d8>

(Yaroslav Boiko / Enapps) #1

как мне правильно использовать Wait в robotframework
Дело в том что использую и пишу тест только под хром и такая команда как
Wait Until Page Contains Element
Wait Until Element Is Visible
оно не ждет, как на FF. Может кто знает решение?


(rmerkushin) #2

Остальные кейворды работают в хром? Если тоже не все пашет обновите драйвер. По идее все должно работать. Возможно вам кажется что он не ждёт т.к хром работает гораздо быстрее с вебдрайвером. Либо просто ожидания появления элемента не достаточно для Вашего случая. Тут может быть замешан Ajax или ещё что нибудь. Чтобы убедиться что кейворды работают установите таймаут для них по больше и натравите на несуществующие элементы. Сразу будет видно ждёт драйвер появления элементов или нет


(Yaroslav Boiko / Enapps) #3

да все верно на иногда когда использую
Wait Until Page Contains Element
Мне оно ожидает и дает ошибку что что елемент не Visible


(Yaroslav Boiko / Enapps) #4

Element is not clickable at point


(rmerkushin) #5

Когда выдаёт эту ошибку?


(Yaroslav Boiko / Enapps) #6

тогда когда я кликаю на елемент и страница грузит, но в ето время Wait Until Page Contains Element не ожидает так как так как етот елемент есть но он не кликабелен, и я писал еще что Wait Until Element Is Visible и оно видает такую ошибку....


(rmerkushin) #7

А что за элемент? Есть подозрение что он динамический так сказать. Тобишь ajax либо как то ещё обновляется


(Pavel Ordenko) #8

частая проблема с хромом. Возмжно, Ваш элемент находится под другим (например, если он в каком-нибудть проматываемом div`е). На сколько я знаю, у хром драйвера не очень получается скроллиться к нужному элементу. Вот другой элемент, который перекрывает Ваш, и получает клик, а нужный - и не clickable, и не visible :slightly_smiling: Попробуйте дождаться загрузки страницы другим образом и сами проскроллить страницу к нужному элементу (например, если на странице есть какие-нить джамп-линки, которые после клика в них сами и проскроллят, или же используя JS, например, тут есть пара советов)


(Yaroslav Boiko / Enapps) #9

Дело в том что я не могу дождатся когда загрузится страница. Она загружается примерно минуту и всегда по разному. скролить мне не надо так как все елементы на странице есть. Пропробую обьяснить (на странице повляется значек загрузки и екран серого фона так как б все что за елементом оно не кликабельное но когда ждать етот елемент и кликнуть селениум видит его но не кликает визуально)


(Yaroslav Boiko / Enapps) #10

Дело в том что я не могу дождатся когда загрузится страница. Она загружается примерно минуту и всегда по разному. скролить мне не надо так как все елементы на странице есть. Пропробую обьяснить (на странице повляется значек загрузки и екран серого фона так как б все что за елементом оно не кликабельное но когда ждать етот елемент и кликнуть селениум видит его но не кликает визуально)
[/quote]


(Necrosium) #11

1) Можешь попробовать кликнуть через JS, что-то вроде такого:
Execute JavaScript $('${element_id}').click().click()

2) В некоторых случаях разработчики жестко запрещают клик по элементу. Например, это может быть связано с тем, что на мобильных девайсах иногда можно случайно сделать drag вместо click.
С таким я уже тоже сталкивался, в данном случае я просто применял функции Mouse down / Mouse up вместо Click

3) Жди дольше ... может ты действительно кликаешь раньше времени.

4) Это к-но не твой случай, но может возникнуть похожая проблема с кликом, да и вообще любым использованием элемента, если взяли правильный локатор, а валится ошибка о том, что элементов по данному локатору не найдено - проверьте, не находится ли данный элемент во фрейме. Если он находится во фрейме, то робот не будет видеть этот элемент пока вы не заюзаете функцию Select Frame с указанием локатора самого фрейма, а затем уже сможете легко найти любой элемент внутри этого фрейма. Только не забывайте потом делать Unselect frame иначе не будет находить элементы за пределами фрейма.


(Yaroslav Boiko / Enapps) #12

все решилось, елемент не успивал загрузится, как оно пробувало его кликнуть.