为了账号安全,请及时绑定邮箱和手机立即绑定

Selenium中的try catch块中的带有isDisplayed()方法的

Selenium中的try catch块中的带有isDisplayed()方法的

慕容3067478 2021-04-08 14:15:07
我想检查阴性情况。上面的boolean元素未显示,但我必须打印true和false,但它没有显示此类元素异常,请帮助。try{    boolean k= driver.findElement(By.xpath("xpath_of_element")).isDisplayed();    if(!k==true)    {             System.out.println("true12");     }}catch (NoSuchElementException e) {    System.out.println(e);}
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

元素有两个不同的阶段,如下所示:


HTML DOM中存在的元素

元素可见,即显示在DOM树中

正如你所看到的NoSuchElementException异常基本上表示该元素不存在的内视口,并在所有可能的条件下isDisplayed()方法将返回错误。因此,要验证这两个条件,可以使用以下解决方案:


try{

    if(driver.findElement(By.xpath("xpath_of_the_desired_element")).isDisplayed())

        System.out.println("Element is present and displayed");

    else

        System.out.println("Element is present but not displayed"); 

}catch (NoSuchElementException e) {

    System.out.println("Element is not present, hence not displayed as well");

}


查看完整回答
反对 回复 2021-04-21
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

  if (driver.findElements(xpath_of_element).size() != 0) return true; 
         return false;


查看完整回答
反对 回复 2021-04-21
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

在检查元素的显示状态之前,应该使用以下代码验证给定的xpath是否存在至少一个或多个元素。


List<WebElement> targetElement =  driver.findElements(By.xpath("xpath_your_expected_element"));

    try {

        if(targetElement>=1) {

            if(targetElement.isDisplayed()) {

                System.out.println("Element is present");

            }

            else {

                System.out.println("Element is found, but hidden on the page");

            }

            else {

                System.out.println("Element not found on the page");

            }

        }catch (NoSuchElementException e) {

            System.out.println("Exception in finding the element:" + e.getMessage());

        }


查看完整回答
反对 回复 2021-04-21
  • 3 回答
  • 0 关注
  • 347 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信