我有一个测试用例:
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]
。我无法弄明白为什么?
答案 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;
}
}