我下面有一个if语句,这使我遇到了问题。如果在其他下拉菜单中进行了某些选择,则页面将显示第二个下拉菜单和一个复选框。下面的代码在进行选择后导致这两个元素显示,但按预期方式工作,但是如果进行了选择却不显示这两个元素,则该代码无效。我收到no such element: Unable to locate element
错误。起初我以为这两种方法都返回了true,但是问题在于它崩溃了。我什至在尝试将值分配给booolean时添加了检查,但仍然出现相同的错误。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.
}