PhantomJS + WebDriver. Ошибка в локаторах

Всем привет:) Недавно появилась потребность в запуске небольшой группы тестов используя PhantomJs. Для локаторов я использовал CSS, который успешно отрабатывает в WebDriver. Но при запуске через PhantomJS - в лог валиться ошибка на первом же локаторе:

WebElementLocator - _handleLocateCommand - Element(s) NOT Found: GAVE UP.

В чем причина?

Проблема уже не актуальна:)

Э не, так не пойдет. Давайте, рассказывайте как решили проблему. :smiley:

Мне пришлось некоторые локаторы (не все) на XPath переписать, чтоб в PhantomJS заработало.

+1. Недавно также удалось воспользоваться phantomjs (тестируемый проект позволил).

Факт: локаторы лучше писать в Xpath.

Кстати, не сказал бы, что phantomjs намного быстрее по сравнению с IE. Я ждал бОльшего, хотя зависит от тестируемого приложения.

Не актуальна, потому как локаторы, написанные на CSS исправно работают :smile:

Проблема была в самом тесте, т.к. он после авторизации сразу проверял факт LogIn’a, а сайт работает с небольшой задержкой))) тест и падал. Немного подкрутив ожидание - я исправил проблему

Я использовал немного его. Как-то в продакшине мне еще не удалось его использовать в полной мере. А что скорость настолько низкая? Можно привести какие-нибудь сравнительные цифры?

На самом деле всё объяснимо: при переходе на сайт страница не грузится сразу, возникает клипсидра - ждём пока подтянутся данные из БД. И, вот, это действие довольно долгое и нивелирует все остальные.

Таким образом, что в IE, что в phantomjs скорость примерно равна и отличается секунд на 20-30.
В тесте происходит переход по нескольким десяткам таких страниц.

Думаю, если бы сама страница отрисовывалась “мгновенно” без ожидания клипсидры, разница была бы больше.
Тем не менее мне phamtomjs очень нравится своей “невидимостью”. В случае с запуском тестов через jenkins это очень спасло ситуацию со скриншотами и прочей ерундой.

Что это такое?! :smile:

Это значок, который говорит пользователю “подожди, я работаю”.
В винде это были раньше водяные часы, на маке - вращающийся радужный круг.

Только я опечатался: клепсидра

Добрый день. У меня возникает проблема с видимостью элементов. При использовании firefox все отрабатывает ок, при использовании phantomjs тест падает с ошибкой

org.openqa.selenium.ElementNotVisibleException: {"errorMessage":"Element is not currently visible and may not be manipulated","request":{"headers":{"Accept-Encoding":"gzip,deflate","Connection":"Keep-Alive","Content-Length":"27","Content-Type":"application/json; charset=utf-8","Host":"localhost:32860","User-Agent":"Apache-HttpClient/4.5.1 (Java/1.8.0_66)"},"httpVersion":"1.1","method":"POST","post":"{\"id\":\":wdc:1455098301760\"}","url":"/click","urlParsed":{"anchor":"","query":"","file":"click","directory":"/","path":"/click","relative":"/click","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/click","queryKey":{},"chunks":["click"]},"urlOriginal":"/session/cd750060-cfdc-11e5-a24c-a1ab98d68d6b/element/:wdc:1455098301760/click"}}
все локаторы переписал уже на xpath, ожидания увеличил…ничего не помогает. Что можете еще посоветовать сделать? Спасибо!

А скриншот делаете? Что там?

Скрин делаю, елемент на странице есть, но он его почему то не видит. У меня страница на которой отображаются динамические елементы. Автоматически выбирается нужный елемент из дом структуры, ну и кликом должен добавлятся. Так вот через браузер он выбирается, через phantomjs нет. Может дело в том что данные на страницу летят через socet? Как вообще phantomjs работает с socket-ами???

1 лайк

Та же проблема. Заходит на сайт но перейти на другую страницу или нажать кнопку не может. Логе ошибок пишет что “errorMessage”:“Element is not currently visible and may not be manipulated”…