aquality.selenium.core.elements.ElementStateProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aquality-selenium-core Show documentation
Show all versions of aquality-selenium-core Show documentation
Library with core functions simplifying work with Selenium-controlled applications.
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