java - Selenium 错误:没有这样的元素:无法在 .isDisplayed() 方法上找到元素
问题描述
我在下面有一个 if 语句,这让我遇到了问题。如果在不同的下拉列表中进行了某些选择,则页面会显示第二个下拉列表和一个复选框。下面的代码在做出导致这两个元素显示的选择时按预期工作,但如果做出不使它们显示的选择,则不会。我得到了no such element: Unable to locate element
错误。起初我认为无论哪种方式它都会返回真实,但问题是它崩溃了,因为。我什至在尝试将值分配给布尔值时添加了一个检查,但仍然得到相同的错误。
boolean dropdown = driver.findElement(By.id("DROPDOWN")).isDisplayed();
得到同样的错误。
if(driver.findElement(By.id("DROPDOWN")).isDisplayed()){
driver.findElement(By.id("DROPDOWN")).click();
driver.findElement(By.xpath("Choice in Drop DOWN)).click();
driver.findElement(By.id("CheckBox")).click();
}
解决方案
findElement 方法将抛出这个硬异常 - 如果找不到元素,则没有这样的元素。只需包括无此类元素的异常处理,您的逻辑就可以正常工作。
try{
if(driver.findElement(By.id("DROPDOWN")).isDisplayed()){
driver.findElement(By.id("DROPDOWN")).click();
driver.findElement(By.xpath("Choice in Drop DOWN)).click();
driver.findElement(By.id("CheckBox")).click();
}
catch (NoSuchElementException e)
{
// I believe you dont have to do anything here. May be a console log will do.
}
推荐阅读
- button - PayPal 智能支付按钮 - 处理时的状态
- c# - FormRegionInitializing 仅在处于调试模式 (VSTO Outlook) 时触发
- spring-boot - 我想使用@Scheduler 注释在rabbitMQ 中以5 秒的延迟发送消息
- javascript - 在节点 js 应用程序中使用 jquery 或 javascript 在表格的单元格内创建 Svg 行
- javascript - 无法用玩笑和酶模拟点击菜单 Antd
- javascript - 在 VueJS 中定义一个引用变量
- python - 在 Scapy 数据包中包含命令的输出
- powerbi - 我在 Power Bi Report Builder 中找不到登录选项
- excel - 关于使用 VBA 在 Excel 上禁用按钮
- python - Python yield 语句每次都返回相同的值