无法使用Selenide捕获NoSuchElementException

时间:2018-09-25 09:23:58

标签: selenide

我正在尝试捕获NoSuchElementException。这是我的代码:

public void checkActiveApps() {
    try {
        $(BUTTON).click();
    } catch (org.openqa.selenium.NoSuchElementException e) {
        System.out.println(e);
    }
}

但是仍然抛出异常。怎么抓?

这是日志:

Element not found {button[role='checkbox']}
Expected: visible
Screenshot: file:/Users/user/source/project/build/reports/tests/1537866631954.0.png
Page source: file:/Users/user/source/project/build/reports/tests/1537866631954.0.html
Timeout: 4 s.
Caused by: NoSuchElementException: Unable to locate element: button[role='checkbox']
    at com.codeborne.selenide.impl.WebElementSource.createElementNotFoundError(WebElementSource.java:31)
    at com.codeborne.selenide.impl.ElementFinder.createElementNotFoundError(ElementFinder.java:82)
    at com.codeborne.selenide.impl.WebElementSource.checkCondition(WebElementSource.java:59)
    at com.codeborne.selenide.impl.WebElementSource.findAndAssertElementIsVisible(WebElementSource.java:72)
    at com.codeborne.selenide.commands.Click.execute(Click.java:16)
    at com.codeborne.selenide.commands.Click.execute(Click.java:12)
    at com.codeborne.selenide.commands.Commands.execute(Commands.java:144)
    at com.codeborne.selenide.impl.SelenideElementProxy.dispatchAndRetry(SelenideElementProxy.java:90)
    at com.codeborne.selenide.impl.SelenideElementProxy.invoke(SelenideElementProxy.java:65)

我使用硒化物版本 4.12.3

1 个答案:

答案 0 :(得分:1)

Selenide不会因为自身使用而抛出Selenium异常。

您可以尝试使用:

public void checkActiveApps() {
    try {
        $(BUTTON).click();
    } catch (com.codeborne.selenide.ex.ElementNotFound e) {
        System.out.println(e);
    }
}

您为什么仍要抓住它?