我是Selenium&的新手。 Java的。我想要完成的是等待一个元素出现超时,如果该元素在超时运行之前出现,那么就继续运行。下面的代码将给出TimeoutException
并停止运行其余代码。
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.presenceOfElementLocated(By.id("my_element")));
答案 0 :(得分:0)
请尝试这种方式:
public boolean isFind(WebElement my_element) {
try{
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.presenceOfElementLocated(By.id("my_element")));
}
catch(TimeoutException exception) {
return false;
}
return true;
}
答案 1 :(得分:0)
感谢您的帮助,我花了一些时间来玩它。这是我提出的解决方案。希望它有助于下一个人。如果我搞砸了,请告诉我,再次感谢。
try{
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@id='signup_email']")));
}catch (org.openqa.selenium.TimeoutException e){
JOptionPane.showMessageDialog(null, "Login Complete!");
return;
}
答案 2 :(得分:-1)
您可以使用ExpectedConditions.visibilityOf
WebDriverWait wait = new WebDriverWait(d, 120);
wait.until(ExpectedConditions.visibilityOf(d.findElement(By.xpath("//input[@id='signup_email']"))));