我试图为移动应用程序编写自动测试:“ 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。
答案 0 :(得分:0)
然后btn_register2.click();
抛出异常会发生什么?
您可以在catch部分中添加一个try-catch块,但是最好在单击element之前进行检查。
List<WebElement> elements = driver.findElements(By by);
if (elements.size() > 0)
elements.get(0).click();
答案 1 :(得分:0)
如果要使用try catch块执行此操作,可以这样做:
try {
btn_register1.click();
} catch (NoSuchElementException e) {
try {
btn_register2.click();
} catch (NoSuchElementException f) {
btn_register3.click();
}
}