6

I’m trying to catch NoSuchElementException. This is my code:

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

But the exception is still thrown. How to catch it?

This is the log:

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)

I use selenide version 4.12.3

IKo
  • 4,998
  • 8
  • 34
  • 54

1 Answers1

8

Selenide does not throw Selenium exceptions as it uses it's own.

You can try using:

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

Why do you want to catch it anyway?

Maciek
  • 121
  • 4