让我说我正在寻找一个名为element0
的元素,
driver.findElement(element0).click;
Thread.sleep(5000);
根据我的wifi速度,element0
可能需要花费5000到10000毫秒才能显示。
必须不断更改Thread.sleep()
中的值会破坏自动化的目的。
围绕try catch块周围可以工作
try {
driver.findElement(element0).click;
Thread.sleep(5000);
} catch(org.openqa.selenium.NoSuchElementException e) {
driver.findElement(element0).click;
Thread.sleep(5000);
}
但是如果在捕获element0
之后仍然不存在org.openqa.selenium.NoSuchElementException e
,那么它只会抛出另一个相同的错误
是否有更好的方法让我的代码进入睡眠状态?
我是否可以循环循环遍历driver.findElement(element0).click
直到element0
存在?
硒气体明确用于该目的
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
WebDriverWait wait = new WebDriverWait(WebDriverRefrence, 10);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(element0));
element.click();
这将等待up至10秒钟,以使元素可见。您还有很多ExpectedConditions可以选择。