package com.abmash.core.browser.waitcondition; import com.abmash.api.Browser; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedCondition; /** * condition for wait driver which evaluates a given javascript expression */ public class JavaScriptEvaluatedWaitCondition implements ExpectedCondition<Boolean> { Browser browser; String expressionCondition; public JavaScriptEvaluatedWaitCondition(Browser browser, String expression) { this.browser = browser; // prepend return expression to ensure correct return value // only for single line commands if(!expression.startsWith("return") && !expression.contains("\n")) expression = "return " + expression; this.expressionCondition = expression; } public Boolean apply(WebDriver webDriver) { return browser.javaScript(expressionCondition).hasAdequateReturnValue(); } }