即使其中一个软断言失败,测试也会继续进行。 但在我的情况下,我的测试在软断言失败后停止,因为找不到下一个测试元素。
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。
答案 0 :(得分:0)
这看起来不是断言的问题,因为正如你提到的第二行正在运行但它会抛出异常。您的问题可能在这里:p.OtsPage.fEditValue().isEnabled()
。
更确切地说:WebDriver.findElement(By)
根据docs抛出NoSuchElementException。
您可能在findElement()
功能中运行fEditValue()
,您应该在那里搜索问题。确保在运行它时,此函数中由选择器表示的元素确实存在于页面上。