4

我正在尝试捕捉 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

4

1 回答 1

6

Selenide 不会抛出 Selenium 异常,因为它使用它自己的。

您可以尝试使用:

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

为什么你还想抓住它?

于 2018-11-19T10:36:32.970 回答