selenium - 如果元素在硒的 IF 中不可见,如何移动到 ELSE 条件
问题描述
我正在编写一段代码,其中在 if 条件下我给出一个条件,即如果显示元素,它们只会转到 if 部分,否则如果元素未显示,则它应该转到 else 部分。但是每当它到达 if 条件时,它就会搜索元素,当它没有找到它时,它会给出一个超时异常。可以做什么?
public void addaddress() {
suites.setupEnviroment();
WebDriver driver = suites.getWebDriver();
try {
//code to find elements
try {
if(driver.findElement(By.xpath("//div[@class='toast lgksToast ']")).isDisplayed()){
System.out.println("fail");
}
else{
System.out.println("pass");
}
} catch (Exception e) {
System.out.println(e);
}
}catch(Exception e) {
System.out.println(e);
}
}
在上面的代码中,如果找不到具有此 xpath (//div[@class='toast lgksToast ']) 的元素,则它不执行 else 部分我应该为此做什么请建议。
提前致谢
解决方案
使用该size()
方法,findElements
它将开始工作。
if(driver.findElements(By.xpath("//div[@class='toast lgksToast ']")).size() > 0) {
System.out.println("fail");
} else {
System.out.println("pass");
}
推荐阅读
- angular - 当有待处理的请求时,我的应用程序卡住了
- c# - 20 倍的性能差异 Interlocked.Read 与 Interlocked.CompareExchange 虽然都使用 lock cmpxchg 实现
- python - python(烧瓶)中的给定模块错误中没有名称
- linux - 对于给定条件,使用 AWK 将一个文件中的列添加到另一个文件中
- linux - 如何解决无法解析“proxy.iiit.ac.in”
- java - 更改输入日期的日期格式并仅传递给函数实际日期
- azure-data-factory - 基于事件的触发器,用于同一数据工厂管道的顺序运行
- javascript - 使用堆栈 Angular/Express/MongoDB 拆分 HTTP 请求
- android - Android 11 Scoped Storage 权限(如何管理文件管理器应用程序,文件管理器应用程序呢)
- amazon-web-services - 有没有办法使用 boto3 获得 AWS QuickSight 数据集刷新率?