基本上我正试图看看是否能够点击一个按钮.如果不是,我想再试一次.所以我需要某种goto函数来返回我的代码的早期行.虽然我怀疑我写得非常糟糕,而且本来可以做得更轻松.
try {
driver.findElement(By.xpath("//button[@id='btn_ok']")).click();
}catch (Exception e) {
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
对于上下文,这里是问题的按钮罪魁祸首.
解决方法:
您可以使用流利的等待.这将检查按钮是否每5秒可点击30秒.您可以根据需要调整时间.尝试此代码并提供反馈是否有效.
Wait wait = new FluentWait(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement clickseleniumlink = wait.until(new Function(){
public WebElement apply(WebDriver driver ) {
return driver.findElement(By.xpath("//button[@id='btn_ok']"));
}
});
clickseleniumlink.click();
标签:java,wait,selenium-webdriver,selenium,goto
来源: https://codeday.me/bug/20190627/1302799.html