无法使用 Selenide 捕获 NoSuchElementException

IKo*_*IKo 6 selenide

I\xe2\x80\x99m 试图捕获 NoSuchElementException。这是我的代码:

\n\n
public void checkActiveApps() {\n    try {\n        $(BUTTON).click();\n    } catch (org.openqa.selenium.NoSuchElementException e) {\n        System.out.println(e);\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但仍然抛出异常。怎样才能抓住它呢?

\n\n

这是日志:

\n\n
Element not found {button[role='checkbox']}\nExpected: visible\nScreenshot: file:/Users/user/source/project/build/reports/tests/1537866631954.0.png\nPage source: file:/Users/user/source/project/build/reports/tests/1537866631954.0.html\nTimeout: 4 s.\nCaused by: NoSuchElementException: Unable to locate element: button[role='checkbox']\n    at com.codeborne.selenide.impl.WebElementSource.createElementNotFoundError(WebElementSource.java:31)\n    at com.codeborne.selenide.impl.ElementFinder.createElementNotFoundError(ElementFinder.java:82)\n    at com.codeborne.selenide.impl.WebElementSource.checkCondition(WebElementSource.java:59)\n    at com.codeborne.selenide.impl.WebElementSource.findAndAssertElementIsVisible(WebElementSource.java:72)\n    at com.codeborne.selenide.commands.Click.execute(Click.java:16)\n    at com.codeborne.selenide.commands.Click.execute(Click.java:12)\n    at com.codeborne.selenide.commands.Commands.execute(Commands.java:144)\n    at com.codeborne.selenide.impl.SelenideElementProxy.dispatchAndRetry(SelenideElementProxy.java:90)\n    at com.codeborne.selenide.impl.SelenideElementProxy.invoke(SelenideElementProxy.java:65)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我使用selenide版本4.12.3

\n

小智 9

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

您可以尝试使用:

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

为什么你还是想抓住它?

  • 如果它抛出自己的错误,为什么在终端/控制台中看不到它?这太令人困惑了! (3认同)