Перейти к содержимому

Voproshaikin

Регистрация: 21 мар 2018
Offline Активность: 23 мар 2018 14:19
-----

Мои сообщения

В теме: Уважаемые гуру прошу помощи с elementToBeClickable

22 марта 2018 - 16:31

проходит ли код если выставить тред.слип 3000 ?

Да тогда если раскомментить слип, то с моими "кривыми" xpath локаторами тест работает. И сие ужасно ибо провоцирует слабых духом на костыльные слипы.

 

Попробуйте ожидать не просто нужный элемент, а нужный элемент внутри другого в определенном состоянии.

 

Например, css первого пункта меню (если оно видно): 

.navbar[style*=' 0px'] .active a[href='#']

Татьяна, спасибо большое! Примерно на те же мысли меня натолкнул пристальный взгляд на 

<div class="navbar navbar-default navbar-fixed-top" role="navigation" style="top: 0px;">
<div class="navbar navbar-default navbar-fixed-top navbar-hidden" role="navigation" style="top: -50px;">
для различных состояний меню.
 
т.е. например можно было бы проверять видимость "родительского" элемента , что-нибудь наподобие "[class $='navbar-fixed-top']", но Ваш вариант лучше.
 

Вот руководство

https://www.w3school...s_selectors.asp

Спасибо, Дмитрий


В теме: Уважаемые гуру прошу помощи с elementToBeClickable

22 марта 2018 - 11:58

Уважаемые форумчане! Кажется мне удалось смоделировать мою проблему на общедоступном ресурсе. Как мне кажется проблема в том, что программа по каким то причинам не дожидается "окончательного появления" "Auto-Hiding Navbar"
В моем далеко не изящном коде (простите я только знакомлюсь с автоматизацией) осуществляется переход к нижнему элементу страницы. Затем специально применяется слип, что бы продемонстрировать ситуацию, когда после "паузы", после первого же действия пользователя должен появиться NavBar, но ExpectedConditions не обрабатывает корректно данную ситуацию.
Пример кода демонстрирующего проблему
Скрытый текст
 
Буду рад любому конструктивному переложению 

В теме: Уважаемые гуру прошу помощи с elementToBeClickable

22 марта 2018 - 11:52

Уважаемый, Коваленко Дмитрий Владимирович!

К сожалению Ваш ответ не помог решить мою проблему:

 

1. То, что лучше обращаться по id-шнику к элементу никто не спорит. (К сожалению я не проверил свое сообщение и не заметил, что адрес сайта https://www.virtuoso...tohidingnavbar/, который я использовал в качестве примера был "скомкан". (хотя как оказалось он "рабочий")

Буду вам премного признателен за консультацию, какие тут лучше использовать id-шники. (да использовать длинные css локаторы это моветон. Просто надо было создать пример за 2-ру минут – тут уж не до изысков)

 

2. Не все знакомы с JS, задача решалась подручными средствами seleniuma. Да, в принципе, с помощью scrollIntoView можно прыгнуть на некий нижний элемент страницы, а потом прыгнуть на верхний, но к сожалению такой способ не приведет к появлению "Auto-Hiding Navbar".

Вот тут http://qaru.site/que...river-with-java  (если вам будет интересно) один из примеров, где пользователи обсуждают различные способы применения JS (и отчасти комментируют их неэффективность в определенных ситуациях). Согласен, использование подряд нескольких sendKeys выглядит некрасиво, и ввиду сжатости сроков написания примера был использован Ctrl-C Ctrl-V.

 

3. Если верить описанию класса ExpectedConditions https://seleniumhq.g...qa.selenium.By- , то цитирую "Returns: the WebElement once it is located and clickable (visible and enabled)"

 

4. Большое спасибо за рекомендацию изучать Page Object, частично я с ней уже знаком, но вот как она конкретно сможет помочь с проблемами возникшими с использованием  ExpectedConditions  - извините, не понял.