下面是我的代码,在我将Selenium Webdriver版本更新为3.11.0之后,该代码显示为已弃用.
private Wait<WebDriver> mFluentWait(WebDriver pDriver) {
Wait<WebDriver> gWait = new FluentWait<WebDriver>(pDriver).withTimeout(100, TimeUnit.SECONDS)
.pollingEvery(600, TimeUnit.MILLISECONDS).ignoring(NoSuchElementException.class);
return gWait;
}
Run Code Online (Sandbox Code Playgroud)
在代码中显示已弃用的警告withTimeout和pollingEvery部分.
如何重写此代码以便我可以删除已弃用的警告.
由于我是硒的新手,我不确定这种变化.任何帮助将不胜感激.
我知道,在等待DOM尚未出现的网络元素方面,最有效的是流畅的等待.所以我的问题是:
有没有办法处理和捕获NoSuchElementException流利的等待可能抛出的或任何异常因为元素不存在?
我需要一个布尔方法,它会给我结果是否找到元素.
这种方法在网上很流行.
public void waitForElement(WebDriver driver, final By locator){
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(60, TimeUnit.SECONDS)
.pollingEvery(2, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我需要的是,**.ignoring(NoSuchElementException.class);**不会被忽视.一旦捕获到异常,它将返回FALSE.另一方面,当找到元素时,它将返回TRUE.
java selenium-chromedriver selenium-webdriver nosuchelementexception fluentwait
隐式、显式、流利等之间有什么区别?
如果我们在隐式等待中设置 10 秒,并且在 10 秒之前,则在 3 秒内只有元素被定位。
到时候会发生什么?它将等待 10 秒钟或继续进行。
selenium selenium-webdriver webdriverwait fluentwait implicitwait