WebdriverIO:如果waitForDisplayed()返回假,则测试不会失败

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

我正在Javascript中使用WebdriverIO和Appium来测试Android / iOS应用。

我有一个欢迎屏幕,有时会在加载屏幕之后显示。以下代码是我目前用来跳过欢迎屏幕的代码。

if(welcomeScreenTitle.waitForDisplayed()){
   skipWelcomeScreenButton.click();
}

我遇到的问题是,如果waitForDisplayed()超时(这意味着屏幕这次没有显示出来),它将导致测试失败。有什么办法可以做到这一点?

我尝试使用

browser.wait(10000);
if(welcomeScreenTitle.isDisplayed()){
   skipWelcomeScreenButton.click();
}

但是加载屏幕的时间因连接速度的不同而有所不同(因此可能会更长),并且如果欢迎屏幕在10秒钟之前出现,我不想等待整整10秒钟(因为大多数它显示的时间)。

appium ui-automation webdriver-io
1个回答
0
投票

一种更简单的方法是在代码周围添加一个try catch块,以便您可以抑制抛出的错误并继续执行。

try {
browser.waitForDisaplyed(10000);
if(welcomeScreenTitle.isDisplayed()){
   skipWelcomeScreenButton.click();
}
} catch (error) {
console.log('Welcomescreen is not displayed.')
}
© www.soinside.com 2019 - 2024. All rights reserved.