2016-06-08 92 views
0

我有一個HTML網頁,其中包含以下元素的不止一個:PhantomJS和XPath選擇

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

我使用webdriver的-IO與WDIO亞軍運行茉莉測試。

在我的測試中,我等到跨度爲available/visible,以便我可以檢查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) 

運行在Chrome和Firefox的測試。

我注意到在chrome中調用相同的.waitForExist函數運行速度很快,但是在PhantomJS中這需要非常長的時間,並且有時超時而沒有找到element

有沒有人注意到類似PhantomJS的行爲XPath選擇器?

PhantomJS這樣的XPath選擇器有什麼問題?

TIA

回答

1

我已經遇到這個問題我自己,我帶走的結論是,當你做:

browser.get(url); 

硒等待來自該網頁的確是瀏覽器的答案到達。 PhantomJS中的Ghostdriver使得信號提前返回源代碼並花費較長的時間執行JavaScript,而Chrome或Firefox則發送信號並且通常動態生成的內容已經可用。當你有一個緩慢的互聯網連接,並想做跨瀏覽器測試時,這是特別煩人的。

不要把我的話當成一個事實,儘管這個「結論」只來自廣泛的測試,並且是假設。我不熟悉該工具的代碼。