比Thread.sleep()更好的睡眠方法?

问题描述 投票:0回答:1

让我说我正在寻找一个名为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存在?

java android automation appium sleep
1个回答
0
投票

硒气体明确用于该目的

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可以选择。

© www.soinside.com 2019 - 2024. All rights reserved.