2017-05-26 52 views
-1

我想等待幾個加載紡紗器消失。所以我用一個等待ExpectedConditions.invisibilityOfElementLocated,例如:ExpectedConditions.invisibilityOfElementLocated在只有一個元素不可見時停止?

(new WebDriverWait(driver, 120)).until(ExpectedConditions.invisibilityOfElementLocated(By.className("Spinner"))); 

然而,等待結束,而一些紡紗廠裝載在屏幕上仍然存在。看起來,當這個查詢找到的第一個微調框變爲不可見時,等待停止。

有什麼辦法可以等待全部元素變得不可見,除了自定義條件?

+1

還有什麼你試過嗎?你嘗試過'ExpectedConditions.invisibilityOfAllElements(elements)'嗎? – JeffC

+0

不保證在等待期間不會出現新元素,因此只需搜索一次,然後使用'invisibilityOfAllElements(elements)'就不會起作用。 –

+0

我已經實現了自定義條件,但是我想知道是否有可接受的解決方案。 –

回答

0

你可以嘗試以下如果所有的紗廠有同一類的「微調」

(new WebDriverWait(driver, 120)).until(ExpectedConditions.invisibilityOfAllElements(driver.findElements(By.className("Spinner")))); 
+0

但是在等待開始時,這會找到類Spinner的元素一次。如果在等待期間添加了新的,該怎麼辦? –