2
爲什麼我的等待方法不等到30秒?爲什麼我的等待方法不等到30秒?
如果方法找不到元素,我的方法應該在30秒後超時,目前返回true或false,沒有超時,有什麼想法?
public boolean WaitUntilWebElementIsVisiblePredicate(WebElement element) {
FluentWait<WebElement> wait = new FluentWait<WebElement>(element)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(100, TimeUnit.MILLISECONDS)
.ignoring(NoSuchFieldException.class);
Function<WebElement, Boolean> f = new Function<WebElement, Boolean>() {
@Override
public Boolean apply(WebElement element) {
if (!element.isDisplayed()) {
System.out.println("Method failed: WaitUntilWebElementIsVisiblepPredicate, using locator: " + element.toString());
return false;
}
System.out.println("Element visible, using method: WaitUntilWebElementIsVisiblepPredicate, Locator: " + element.toString());
return true;
}
};
return wait.until(f);
}
感謝您的評論,我甚至當該方法返回false時,它dosnt保持輪詢,並在等待最大時間30秒超時過期 – Gbru
我沒有看到這個代碼中的任何錯誤,除非你正在returing'返回wait.until(f);'到布爾函數,但我猜'直到'方法返回類型是WebElement。 – YuVi
我唯一的問題是我需要傳遞一個WebElement(id定位器)作爲參數 – Gbru