📜  如何在 appium 中添加等待 (1)

📅  最后修改于: 2023-12-03 15:08:33.761000             🧑  作者: Mango

如何在 Appium 中添加等待

在自动化测试中,等待是十分重要的,可以保证测试脚本能够顺利执行。在 Appium 中添加等待可以通过以下几种方式实现。

1. Timeouts

Appium 中有三种 timeout 可以设置:newCommandTimeout, implicitWait, pageLoadTimeout。其中 newCommandTimeout 可以设置 Appium 服务器等待连接的超时时间,implicitWait 设置等待元素的超时时间,pageLoadTimeout 设置页面加载的超时时间。

代码片段:

// 设置 implicitWait 为 10 秒
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

// 设置 pageLoadTimeout 为 30 秒
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);

// 设置 newCommandTimeout 为 60 秒
driver.manage().timeouts().newCommandTimeout(60, TimeUnit.SECONDS);
2. Expected Conditions

Expected Conditions 是 Selenium Webdriver 的一部分,可以用来在特定条件下等待元素。你可以使用这些条件来等待元素在 DOM 中出现、可见、被点击等。

代码片段:

// 等待元素可见,最多等待 10 秒
WebElement element = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.id("myElement")));
3. Thread.sleep()

使用 Thread.sleep() 可以直接让测试脚本睡眠指定的时间,但是这种方式并不稳定,不建议被频繁使用。

代码片段:

try{
    Thread.sleep(5000);// 睡眠 5 秒
}catch(InterruptedException e){
    e.printStackTrace();
}

综上所述,以上三种方式都可以在 Appium 中添加等待。其中,Timeouts 和 Expected Conditions 是比较稳定和可靠的方式,建议使用。而 Thread.sleep() 可能会导致测试在网络较慢的环境下失败,不建议经常使用。

Markdown 返回:

# 如何在 Appium 中添加等待

在自动化测试中,等待是十分重要的,可以保证测试脚本能够顺利执行。在 Appium 中添加等待可以通过以下几种方式实现。

## 1. Timeouts

Appium 中有三种 timeout 可以设置:`newCommandTimeout, implicitWait, pageLoadTimeout`。其中 `newCommandTimeout` 可以设置 Appium 服务器等待连接的超时时间,`implicitWait` 设置等待元素的超时时间,`pageLoadTimeout` 设置页面加载的超时时间。

代码片段:

```java
// 设置 implicitWait 为 10 秒
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

// 设置 pageLoadTimeout 为 30 秒
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);

// 设置 newCommandTimeout 为 60 秒
driver.manage().timeouts().newCommandTimeout(60, TimeUnit.SECONDS);
2. Expected Conditions

Expected Conditions 是 Selenium Webdriver 的一部分,可以用来在特定条件下等待元素。你可以使用这些条件来等待元素在 DOM 中出现、可见、被点击等。

代码片段:

// 等待元素可见,最多等待 10 秒
WebElement element = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.id("myElement")));
3. Thread.sleep()

使用 Thread.sleep() 可以直接让测试脚本睡眠指定的时间,但是这种方式并不稳定,不建议被频繁使用。

代码片段:

try{
    Thread.sleep(5000);// 睡眠 5 秒
}catch(InterruptedException e){
    e.printStackTrace();
}

综上所述,以上三种方式都可以在 Appium 中添加等待。其中,Timeouts 和 Expected Conditions 是比较稳定和可靠的方式,建议使用。而 Thread.sleep() 可能会导致测试在网络较慢的环境下失败,不建议经常使用。