【发布时间】:2020-02-27 04:18:56
【问题描述】:
我在下面有一个 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();
}
【问题讨论】:
-
webdriverwait 条件是什么样的?我有想过,但不知道如何解决
-
我认为“.isDisplayed()”会检查样式属性,但如果元素不存在,它在调用方法之前不会抛出这样的元素。您应该使用带有 findElements 的 webdriverwait。如果不存在,它将返回一个空数组。
标签: java selenium selenium-webdriver