package com.codeborne.selenide.commands;
import com.codeborne.selenide.Command;
import com.codeborne.selenide.SelenideElement;
import com.codeborne.selenide.ex.ElementNotFound;
import com.codeborne.selenide.impl.Cleanup;
import com.codeborne.selenide.impl.WebElementSource;
import org.openqa.selenium.WebDriverException;
public class Exists implements Command<Boolean> {
@Override
public Boolean execute(SelenideElement proxy, WebElementSource locator, Object[] args) {
try {
return locator.getWebElement() != null;
} catch (WebDriverException | ElementNotFound elementNotFound) {
if (Cleanup.of.isInvalidSelectorError(elementNotFound)) {
throw Cleanup.of.wrap(elementNotFound);
}
return false;
} catch (IndexOutOfBoundsException invalidElementIndex) {
return false;
}
}
}