【问题标题】:Selenium - Three different welcome screensSelenium - 三个不同的欢迎屏幕
【发布时间】:2023-04-06 18:10:02
【问题描述】:

我尝试为移动应用程序编写自动测试:“Vinted”。我无法制作 LoginScreen,因为此应用程序有 3 个不同的主屏幕,它们会随机加载不同的登录按钮 ID。

我希望你写一个代码:尝试点击A。如果没有A,它会尝试点击B。如果没有B,那么尝试点击C。

我试过了:

try {
btn_register1.click();
  } catch (NoSuchElementException e) {
        btn_register2.click();
        btn_register3.click();
        }

btn_register 1 和 2 有效。但后来到了 3 次测试失败。我想补充一点,我是 Selenium 和 JAVA 的初学者。

【问题讨论】:

  • 在这种情况下,可以考虑通过 id 以外的其他方式定位登录按钮。

标签: java selenium homescreen


【解决方案1】:

然后btn_register2.click(); 抛出异常会发生什么?

您可以在 catch 部分中再添加一个 try-catch 块,但最好在单击元素之前进行检查。

    List<WebElement> elements = driver.findElements(By by);
    if (elements.size() > 0)
        elements.get(0).click();

【讨论】:

    【解决方案2】:

    如果你想用 try catch 块来做,你可以这样做:

     try {
            btn_register1.click();
        } catch (NoSuchElementException e) {
            try {
                btn_register2.click();
            } catch (NoSuchElementException f) {
                btn_register3.click();
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2015-08-18
      • 1970-01-01
      • 2020-05-19
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      相关资源
      最近更新 更多