java - 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 的初学者。
解决方案
然后会发生什么btn_register2.click();
抛出异常?
您可以在 catch 部分中再添加一个 try-catch 块,但最好在单击元素之前进行检查。
List<WebElement> elements = driver.findElements(By by);
if (elements.size() > 0)
elements.get(0).click();
推荐阅读
- java - 如何在单个异常中返回异常列表?
- javascript - 赛普拉斯:在多个 API 测试中重复使用身份验证令牌
- spring - Spring Webflux & Spring Cloud Gateway:如何在 Mono 中提取对象并添加到请求标头
- java - 截图机器人仅在 Debian 上捕获黑屏
- date - 在 dart/Flutter 中解析日期以计算日差
- linux - 运行 docker 容器的问题包含 golang 项目
- docker - Docker 容器中的 Hugo 服务器在 Windows 10 中无法访问
- database - 没有功能依赖的关系模式的规范化
- mysql - '\xE7' 使用的正确字符集是什么
- r - 如何一次将数据帧中的多个不同相关矩阵成对转换?