2017-08-16 45 views
0

我正在尋找更好的解決方案,等到元素消失。現在我正在使用:硒 - 等到元素消失持續很久

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeout)); 
    wait.Until((ExpectedConditions.InvisibilityOfElementLocated(element))); 

此方法正在工作,但它持續很長時間。元素在約2秒後在dom中不可見,但駕駛員正在等待此狀態< 20秒。我正在尋找另一種解決方案,但找不到可以在.net中使用的解決方案。 我使用IE來運行我的測試。

+0

嘗試設置'wait.Timeout = TimeSpan.FromSeconds(10);'在第二行查看。 –

+0

wait.Timeout與WebDriverWait中的超時不一樣嗎? –

+0

'WebDriverWait'是對象類型。您必須爲對象「等待」分配一個超時值。 –

回答

0

我假設你在混合引起碰撞的隱式和顯式等待。如果使用WebDriverWait,應確保隱式等待設置爲0。

+0

謝謝您的回覆,我根本沒有在這個應用程序中隱含等待,但我減少了顯式等待的數量。現在需要大約10秒來完成這一行:ExpectedConditions.InvisibilityOfElementLocated(@by); –

+0

@KamilLeśniak這很奇怪,因爲當滿足指定的條件時,應立即中斷WebDriverWait輪詢。從你的描述/評論看來,你似乎在等待最大指定的時間量,但沒有得到超時異常。你使用哪個驅動程序/ IE版本? –

+0

對我來說,這也很奇怪,我必須等幾個頁面對象上的這個元素。我正在使用IE驅動程序服務器3.4.0 32位和IE 11 –