首页 > 解决方案 > Selenium - 三个不同的欢迎屏幕

问题描述

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

标签: javaseleniumhomescreen

解决方案


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

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

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

推荐阅读