softAssert失败后无法找到元素

时间:2017-12-27 16:00:11

标签: java selenium firefox assertions geckodriver

即使其中一个软断言失败,测试也会继续进行。 但在我的情况下,我的测试在软断言失败后停止,因为找不到下一个测试元素。

softAssert.assertTrue(p.OtsPage.fName().getAttribute("readonly").equals("true"), "field Name is Editable", "field Name is Read Only");
softAssert.assertTrue(p.OtsPage.fEditValue().isEnabled(), "field Edit Value is not Editable", "field Edit Value is Editable");

这是正常的,但如果我设置:

softAssert.assertFalse(p.OtsPage.fName().getAttribute("readonly").equals("true"), "field Name is Editable", "field Name is Read Only");
softAssert.assertFalse(p.OtsPage.fEditValue().isEnabled(), "field Edit Value is not Editable", "field Edit Value is Editable");

我有以下错误消息:

  

org.openqa.selenium.NoSuchElementException。 第二次软断言!!!

并且测试停止。

环境:Selenium 3.5 + geckodriver + Mozilla 56.0.1。

1 个答案:

答案 0 :(得分:0)

这看起来不是断言的问题,因为正如你提到的第二行正在运行但它会抛出异常。您的问题可能在这里:p.OtsPage.fEditValue().isEnabled()

更确切地说:WebDriver.findElement(By)根据docs抛出NoSuchElementException。

您可能在findElement()功能中运行fEditValue(),您应该在那里搜索问题。确保在运行它时,此函数中由选择器表示的元素确实存在于页面上。