我认为我的问题与代码无关,而是与一般测试中等待 UI 元素或至少我对使用 JUnit 和 Selenium/Arquillian Graphene 测试 UI 的理解有关。
当使用 Arquillian Graphenes waitModel()(或任何其他等待 UI 元素的方法)并且元素在指定的超时后不存在时,我得到一个 seleniumTimeoutException,这让我的 JUnit-Test 以“错误”结束。
ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 151.709 s <<< FAILURE! - in de.viasurance.UiTest
[ERROR] testHappyPath(org.test1.UiTest) Time elapsed: 23.266 s <<< ERROR!
org.openqa.selenium.TimeoutException:
有没有更好的方法让测试以“失败”结束,而不用像这样的 try/catch 块包围我的测试的每一行:
try {
waitModel().withMessage("waiting for loginButton").until().element(loginButton).is().clickable();
} catch (TimeoutException timeoutException) {
fail("UI-Test failed because the following UI-element could not be found: \n" + timeoutException.getMessage());
}