使用AssertionMode.SOFT无法捕获异常

时间:2018-12-18 15:38:27

标签: java selenium webdriver selenide

问题是标记的测试失败,因为找不到元素,尽管使用了try catch。 描述: 我在用着 Configuration.assertionMode = AssertionMode.SOFT; 和 @Listeners({SoftAsserts.class})

不应该失败的方法:

public void logIn(String username, String pwd) {
        $("#login_username").shouldBe(visible).clear();
        $("#login_username").val(username);
        $("#login_password").shouldBe(visible).clear();
        $("#login_password").val(pwd);
        $("#login_submit").click();
        try {
            $("#already_loggedin_continue").click();
        } catch (ElementNotFound | SoftAssertionError | NoSuchElementException e) {
            System.out.println("wasn't logined yet");
        }

当我运行它时,我在控制台中看到我的sysout(因此捕获到异常)。 但是测试被标记为失败:

com.codeborne.selenide.ex.SoftAssertionError: Element not found {#already_loggedin_continue}
Expected: visible
Screenshot: file:/D:/WorkSpace2/AdaptDebug/build/reports/tests/1545146741686.0.png
Page source: file:/D:/WorkSpace2/AdaptDebug/build/reports/tests/1545146741686.0.html
Timeout: 15 s.
Caused by: NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#already_loggedin_continue"}

如何修复它才能捕获异常?

0 个答案:

没有答案