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

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

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

1 лайк

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

Element is not clickable at point

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

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

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

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

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

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

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

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

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

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

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