你试过流利的等待吗?
Wait接口的实现,可以动态配置其超时和轮询间隔。
每个FluentWait实例定义等待条件的最大时间量,以及检查条件的频率。此外,用户可以将等待配置为在等待时忽略特定类型的异常,例如在搜索页面上的元素时的NoSuchElementExceptions。
看到这个链接fluent wait description
特别是我用这种方式使用流利的等待:
public WebElement fluentWait(final By locator){
Wait wait = new FluentWait(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(
new Function() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
}
);
return foo; } ;正如你已经注意到流畅的等待返回发现了web元素。因此,您只需使用By类型传递定位器,然后就可以对找到的Web元素执行任何操作。
fluentWait(By.id("name")).clear();希望这可以帮到你)