[英]How do I return boolean value from ExpectedCondition objects
我確實有一種方法可以等待 JavaScript 在瀏覽器中加載。 從 Selenium 3 (3.141.59),我轉移到 Selenium 4 (4.0.0-alpha-7)
此返回代碼/語句不適用於 Selenium 4
return wait.until(jQueryLoad) && wait.until(jsLoad);
什么是正確的返回聲明? 我嘗試了幾種選擇,但沒有任何效果。 請參閱下面的方法/功能的代碼結構。 您的想法、想法和答案將受到高度評價。
public static boolean waitForJStoLoad() {
WebDriverWait wait = new WebDriverWait(getDriver(), Duration.ofSeconds(30));
// wait for jQuery to load
ExpectedCondition<Boolean> jQueryLoad = new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver arg0) {
try {
Long state = (Long) ((JavascriptExecutor) arg0).executeScript("return jQuery.active");
return (state == 0);
} catch (Exception e) {
return true;
}
}
};
// wait for Javascript to load
ExpectedCondition<Boolean> jsLoad = new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver arg0) {
String state = (String) ((JavascriptExecutor) arg0).executeScript("return document.readyState;");
return state.equalsIgnoreCase("complete");
}
};
return wait.until(jQueryLoad) && wait.until(jsLoad);
}
好吧,我使用的是標准的 Selenium 3 並且不檢查 JavaScript,但我確實有幾種簡單的方法可以使用預期條件驗證某些條件並返回 Boolean。
像這樣的東西:
public boolean waitForElementToDisappear(By element){
try {
wait.until((ExpectedConditions.invisibilityOfElementLocated(element)));
return true;
}catch (Throwable t){
return false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.