All Downloads are FREE. Search and download functionalities are using the official Maven repository.

aquality.selenium.core.elements.ElementStateProvider Maven / Gradle / Ivy

Go to download

Library with core functions simplifying work with Selenium-controlled applications.

There is a newer version: 4.2.0
Show newest version
package aquality.selenium.core.elements;

import aquality.selenium.core.elements.interfaces.IElementStateProvider;
import aquality.selenium.core.logging.ILogElementState;
import org.openqa.selenium.WebElement;

public abstract class ElementStateProvider implements IElementStateProvider {

    private final ILogElementState logger;

    protected ElementStateProvider(ILogElementState logger) {
        this.logger = logger;
    }

    protected void logElementState(String messageKey, String conditionKeyPart) {
        String conditionKey = "loc.el.state.".concat(conditionKeyPart);
        logger.logElementState(messageKey, conditionKey);
    }

    protected boolean isElementEnabled(WebElement element) {
        return element.isEnabled();
    }

    protected DesiredState elementEnabled() {
        return new DesiredState(this::isElementEnabled, "enabled")
                .withCatchingTimeoutException()
                .withThrowingNoSuchElementException();
    }

    protected DesiredState elementNotEnabled() {
        return new DesiredState(element -> !isElementEnabled(element), "not.enabled")
                .withCatchingTimeoutException()
                .withThrowingNoSuchElementException();
    }

    protected DesiredState elementClickable() {
        return new DesiredState(webElement -> webElement.isDisplayed() && webElement.isEnabled(), "clickable");
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy