【问题标题】:WebdriverIO: Have waitForDisplayed() not fail a test if it returns falseWebdriverIO:如果waitForDisplayed()返回false,则测试不会失败
【发布时间】:2020-08-27 01:50:03
【问题描述】:

我在 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】:

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

    try {
    browser.waitForDisaplyed(10000);
    if(welcomeScreenTitle.isDisplayed()){
       skipWelcomeScreenButton.click();
    }
    } catch (error) {
    console.log('Welcomescreen is not displayed.')
    }
    

    【讨论】:

      猜你喜欢
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 2016-10-31
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      相关资源
      最近更新 更多