如何在抛出异常的情况下查找webelement?

时间:2017-03-09 17:50:46

标签: selenium-webdriver webdriver

我正在尝试使用id属性验证我的结果页面上是否存在某些webelement。当没有这样的元素并且不可接受时,它会抛出异常。在Selenium API JavaDoc中,建议使用' findElement'不应该用来寻找不存在的元素,使用' findElements(By)'相反,断言零长度响应。但这也是一个例外,我不知道为什么!还有其他建议吗?

try{
//  THE PRESENT CODE TO BE MODIFIED. NOT TO THROW exception.***********
//              if(driver1.findElement(By.id(orderResultsCheckbox_0)) != null)
//                  return true;
//              *****************************

       //Instead I wrote as below...

                if(  
                    (driver1.findElements(By.id(orderResultsCheckbox_0) != null)) && (driver1.findElements(By.id(orderResultsCheckbox_0)).length() > 0)
                  )
                    return true;
                else
                    return false;

            } catch (Exception e) {
                println "Exception Thrown ==========>";
                return false;
            }

1 个答案:

答案 0 :(得分:0)

findElements 方法返回一个webelements列表,您可以使用 size()方法检查列表是否包含任何webelements。因此,请使用以下内容替换现有代码,并告诉我它是否可以解决您的问题:

if(driver1.findElements(By.id(orderResultsCheckbox_0)).size() != 0)
         return true;
else
         return false;