验证元素缺失

时间:2015-07-20 08:54:16

标签: java selenium

我有一个测试用例:

Assert.assertTrue(test .verifyNoDrillDisplayForCourses()); 

boolean方法 verifyNoDrillDisplayForCourses 验证element("xyz")未显示,

    try{
         if(element("xyz"). isDisplayed())
         return false;

     else return true;
     }
     catch (Exception e) 
     {

        return false;
     }
   }

但断言失败为java .lang .AssertionError:expected [true],但发现[false]。我无法弄明白为什么?

3 个答案:

答案 0 :(得分:2)

如果给定元素不在DOM中,isDisplayed()方法将抛出StaleElementReferenceException。所以你必须将catch语句改为return true;

答案 1 :(得分:1)

如果您正在测试是否存在元素,如果未找到,则会抛出异常。因此,如果您发现错误,如果您无法找到它,那么您也会返回错误。

在测试元素的不存在时,您应该让catch块返回 true

    try{
       if(element("xyz").isDisplayed()) {
             return false;
       } else return true;
    }
    catch (Exception e) 
    {

    return false;
    }
    }

我相信你的if语句缺少你复制过的格式的正确格式。

我已在上面对其进行了修改,但万一尝试这样:

if(element("xyz").isDisplayed()) {
         return false;
   } else return true;

答案 2 :(得分:0)

以下代码帮助:

 public boolean verifyNoelement()

 {

 try


{
           if(element("element").isDisplayed())
           {
           return false;
           }
           return false;
        }
        catch(Exception e)
        {
             logMessage("No element displayed");
            return true;
        }


    }