Selenium - 三种不同的欢迎屏幕

Selenium - Three different welcome screens

我尝试为移动应用程序编写自动测试:“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.

的初学者

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

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

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

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

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