java - Selenium 错误 : no such element: Unable to locate element on . isDisplayed() 方法

标签 java selenium selenium-webdriver

下面有一个 if 语句,这给我带来了问题。如果在不同的下拉列表中进行了某些选择,页面将显示第二个下拉列表和一个复选框。当选择导致这两个元素显示时,下面的代码将按预期工作,但如果选择不显示这两个元素,则代码不会按预期工作。我收到没有这样的元素:无法定位元素错误。起初我认为无论哪种方式它都会返回 true,但问题是它崩溃了,因为。我什至在尝试将值分配给 boolean 值时添加了检查,但仍然遇到相同的错误。

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.
}

关于java - Selenium 错误 : no such element: Unable to locate element on . isDisplayed() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60419835/

相关文章:

selenium - TestNG 测试没有按照优先级执行

java - 我希望 mvn test 在运行单元测试之前运行 sh 文件

java - 使用 selenium/Appium 在 iOS 模拟器上启用/禁用 Wifi

java - 创建 Firefox 配置文件并关闭木偶

java - 如何在 Applet 中加载外部 jar 文件?

java - Java 中的内存映射 zip 文件

java - 我想制作一个 recyclerview,将数据显示到 SQLITE 数据库中的新 Activity

python - 机器人框架 Selenium2Library 中的无缓存刷新

java - 使用 phantomJs Selenium 滚动

javascript - Spring boot自定义gson BEGIN_OBJECT但出现STRING错误