2016-06-08 4 views
0

У меня есть HTML страницы, которая имеет более чем один из следующих элементов:PhantomJS и XPath селекторы

<div id="asd"> 
... 
    <span id="dfgh">Mytext</span> 
... 
</div> 

я использую WebDriver-IO с бегуна WDIO для выполнения тестов жасмина.

В моем тесте я жду, пока промежутки не будут доступны/видны, так что я могу проверить некоторые другие элементы в DOM.

browser.waitForExist('//span[text()="Mytext"]', 120 * 1000, false); 

Я бег обезглавленных тестов с PhantomJS начал как автономные с

GhostDriverphantomjs --webdriver=4444 --debug=true 

и я использую селен начал как автономные с

java -jar selenium-server-standalone-2.53.0.jar -Dwebdriver.chrome.driver=./chromedriver) 

для запуска тестов в хроме и светлячке ,

Я заметил, что тот же .waitForExist вызов функции в chrome работает быстро, но в PhantomJS это занимает очень долгое время, а иногда и таймауты без нахождения element.

Кто-нибудь заметил подобное поведение в PhantomJS для XPath селекторов?

В чем может быть проблема с таким селектором XPath в PhantomJS?

ТИА

ответ

1

Я наткнулся на эту проблему сам, выводы, которые я забирали в том, что когда вы делаете:

browser.get(url); 

Селен ждет ответа от браузера, что страница была действительно достиг. Ghostdriver в PhantomJS дает сигнал, ранее возвращающий исходный код и занимающий больше времени на выполнение javascript, в то время как Chrome или Firefox, сигнал отправляется и часто динамически созданный контент уже доступен. Это особенно раздражает, когда у вас медленное подключение к Интернету и вы хотите сделать кросс-браузерное тестирование.

Не считайте мое слово фактом, однако этот «вывод» пришел только из обширных тестов и является предположениями. Я не знаком с кодом инструмента.