2015-04-08 15 views
4

對於我的UI測試我使用的是頁面的webdriver工廠模式(2.45.0版本)expectedconditions時放棄了。對於我使用phantomjs(版本1.9.8)的驅動程序。在一個單獨的類我有一個類似的方法:元素(S)沒有發現:使用具有phantomjs

public WebElement waitTillNotVisible(By locator, WebDriver driver){ 
    return new WebDriverWait(driver, 10). 
      until(ExpectedConditions.invisibilityOfElementLocated(locator)); 
} 

每次waitTillNotVisible被調用時,我得到錯誤控制檯日誌中,

[ERROR - 2015-04-08T11:30:18.149Z] WebElementLocator - _handleLocateCommand - Element(s) NOT Found: GAVE UP. Search Stop Time: 1428492618108 

但測試繼續通過。這種行爲的原因是什麼,以及如何避免這種行爲?這在我看來就像是一個phantomjs的bug,因爲在使用FirefoxDriver進行測試時不會出現這樣的消息。

回答

3

爲了使用invisibilityOfElementLocated該元素需要在DOM中出現如果我理解正確。看起來像錯誤已經拋出,因爲該元素不存在/該元素沒有找到使用給定的選擇器。

+0

爲什麼它不是一個與Firefox驅動程序的問題? – casper

+0

嗯,我不確定。但是,我們必須記住PhantomJs和Firefox不能以類似的方式工作。你可以看到,如果這個元素至少存在可能'presenceOfElementLocated'在PhantomJs中第一個 – Saifur

+0

好吧,我測試的元素應該從DOM消失。也許有更好的預期條件。 stalenessOf不適用於我,因爲它拋出元素沒有發現異常。 – casper