From ade9cae7699dce77311b0827f96ed60641f80d59 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Thu, 10 Feb 2022 16:53:13 -0600 Subject: [PATCH] remove driver-web to be replaced with a fresh impl --- driver-web/pom.xml | 79 ------ .../driver/webdriver/WebContext.java | 93 ------- .../driver/webdriver/WebDriverAction.java | 63 ----- .../driver/webdriver/WebDriverActivity.java | 229 ------------------ .../webdriver/WebDriverActivityType.java | 36 --- .../driver/webdriver/WebDriverCmdState.java | 13 - .../driver/webdriver/side/Command.java | 72 ------ .../driver/webdriver/side/SideConfig.java | 62 ----- .../driver/webdriver/side/Test.java | 42 ---- .../driver/webdriver/verbs/AcceptAlert.java | 21 -- .../driver/webdriver/verbs/AddCookie.java | 18 -- .../driver/webdriver/verbs/AssertElement.java | 23 -- .../driver/webdriver/verbs/Bys.java | 31 --- .../driver/webdriver/verbs/ClearElement.java | 10 - .../webdriver/verbs/ClearElementBy.java | 17 -- .../webdriver/verbs/ClickElementBy.java | 18 -- .../driver/webdriver/verbs/CookieJar.java | 22 -- .../webdriver/verbs/DeleteAllCookies.java | 11 - .../driver/webdriver/verbs/DeleteCookie.java | 18 -- .../webdriver/verbs/DeleteCookieNamed.java | 17 -- .../driver/webdriver/verbs/DismissAlert.java | 21 -- .../webdriver/verbs/ElementScreenShot.java | 12 - .../webdriver/verbs/ElementSendKeys.java | 16 -- .../driver/webdriver/verbs/ElementSubmit.java | 10 - .../driver/webdriver/verbs/FindElement.java | 29 --- .../verbs/FindElementInElementBy.java | 19 -- .../driver/webdriver/verbs/FindElements.java | 31 --- .../verbs/FindElementsInElementBy.java | 22 -- .../driver/webdriver/verbs/FullScreen.java | 10 - .../driver/webdriver/verbs/Get.java | 21 -- .../webdriver/verbs/GetCookieNamed.java | 18 -- .../driver/webdriver/verbs/GetCookies.java | 14 -- .../webdriver/verbs/GetElementAttribute.java | 18 -- .../webdriver/verbs/GetElementCssValue.java | 16 -- .../webdriver/verbs/GetElementLocation.java | 12 - .../webdriver/verbs/GetElementRect.java | 12 - .../webdriver/verbs/GetElementSize.java | 12 - .../webdriver/verbs/GetElementTagname.java | 11 - .../webdriver/verbs/GetElementText.java | 11 - .../webdriver/verbs/IsElementDisplayed.java | 11 - .../webdriver/verbs/IsElementEnabled.java | 11 - .../webdriver/verbs/IsElementSelected.java | 11 - .../driver/webdriver/verbs/MouseOut.java | 17 -- .../driver/webdriver/verbs/MouseOver.java | 23 -- .../driver/webdriver/verbs/NavigateBack.java | 11 - .../webdriver/verbs/NavigateForward.java | 10 - .../webdriver/verbs/NavigateRefresh.java | 10 - .../driver/webdriver/verbs/NavigateTo.java | 24 -- .../driver/webdriver/verbs/Open.java | 18 -- .../webdriver/verbs/SendKeysToAlert.java | 27 --- .../driver/webdriver/verbs/SetWindowSize.java | 25 -- .../verbs/SwitchToActiveElement.java | 12 - .../driver/webdriver/verbs/SwitchToAlert.java | 12 - .../verbs/SwitchToDefaultContent.java | 12 - .../webdriver/verbs/SwitchToFrameByName.java | 18 -- .../webdriver/verbs/SwitchToFrameElement.java | 19 -- .../verbs/SwitchToFrameElementBy.java | 22 -- .../webdriver/verbs/SwitchToFrameIdx.java | 18 -- .../webdriver/verbs/SwitchToParentFrame.java | 12 - .../webdriver/verbs/SwitchToWindow.java | 18 -- .../driver/webdriver/verbs/WebDriverVerb.java | 17 -- .../webdriver/verbs/WebDriverVerbs.java | 146 ----------- .../webdriver/verbs/WindowGetPosition.java | 12 - .../driver/webdriver/verbs/WindowGetSize.java | 12 - .../webdriver/verbs/WindowMaximize.java | 10 - .../webdriver/verbs/WindowSetPosition.java | 19 -- driver-web/src/main/resources/webdriver.md | 3 - .../driver/webdriver/ExampleWebScript.java | 61 ----- 68 files changed, 1831 deletions(-) delete mode 100644 driver-web/pom.xml delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebContext.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverAction.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverActivity.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverActivityType.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverCmdState.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/Command.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/SideConfig.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/Test.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AcceptAlert.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AddCookie.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AssertElement.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Bys.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClearElement.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClearElementBy.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClickElementBy.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/CookieJar.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteAllCookies.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteCookie.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteCookieNamed.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DismissAlert.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementScreenShot.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementSendKeys.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementSubmit.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElement.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElementInElementBy.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElements.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElementsInElementBy.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FullScreen.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Get.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetCookieNamed.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetCookies.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementAttribute.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementCssValue.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementLocation.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementRect.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementSize.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementTagname.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementText.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementDisplayed.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementEnabled.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementSelected.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/MouseOut.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/MouseOver.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateBack.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateForward.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateRefresh.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateTo.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Open.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SendKeysToAlert.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SetWindowSize.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToActiveElement.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToAlert.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToDefaultContent.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameByName.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameElement.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameElementBy.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameIdx.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToParentFrame.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToWindow.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WebDriverVerb.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WebDriverVerbs.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowGetPosition.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowGetSize.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowMaximize.java delete mode 100644 driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowSetPosition.java delete mode 100644 driver-web/src/main/resources/webdriver.md delete mode 100644 driver-web/src/test/java/io/nosqlbench/driver/webdriver/ExampleWebScript.java diff --git a/driver-web/pom.xml b/driver-web/pom.xml deleted file mode 100644 index 09f34f98b..000000000 --- a/driver-web/pom.xml +++ /dev/null @@ -1,79 +0,0 @@ - - 4.0.0 - - driver-web - jar - - - mvn-defaults - io.nosqlbench - 4.17.5-SNAPSHOT - ../mvn-defaults - - - ${project.artifactId} - - A nosqlbench driver module; - Provides the ability to drive steps through the webdriver API. - - - - - - io.nosqlbench - engine-api - 4.17.5-SNAPSHOT - - - - io.nosqlbench - drivers-api - 4.17.5-SNAPSHOT - - - - org.seleniumhq.selenium - htmlunit-driver - 2.39.0 - - - - org.seleniumhq.selenium - selenium-api - 3.141.59 - - - - org.seleniumhq.selenium - selenium-remote-driver - 3.141.59 - - - - org.seleniumhq.selenium - selenium-java - 3.141.59 - - - - org.seleniumhq.selenium - selenium-chrome-driver - 3.141.59 - - - - org.seleniumhq.selenium - selenium-htmlunit-driver - 2.52.0 - - - - org.apache.httpcomponents - httpclient - 4.5.13 - - - - - - diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebContext.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebContext.java deleted file mode 100644 index c67e084f8..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebContext.java +++ /dev/null @@ -1,93 +0,0 @@ -package io.nosqlbench.driver.webdriver; - -import org.openqa.selenium.*; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; - -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; - -public class WebContext { - private final static Logger logger = LogManager.getLogger(WebContext.class); - - private final WebDriver rootwindow; - WebDriver focus; - - LinkedList elements = new LinkedList<>(); - private final LinkedList cookies = new LinkedList<>(); - private final HashMap vars = new HashMap<>(); - private Alert alert; - - public WebContext(WebDriver initial) { - this.focus = initial; - this.rootwindow = initial; - } - - public void pushElement(WebElement element) { - elements.push(element); - } - - public WebElement peekElement() { - return elements.peek(); - } - - public LinkedList getCookies() { - return cookies; - } - - public LinkedList getElements() { - return elements; - } - - public void setElements(List elements) { - this.elements.clear(); - this.elements.addAll(elements); - } - - public void pushCookie(Cookie cookie) { - this.cookies.push(cookie); - } - - public void setCookies(Collection cookies) { - this.cookies.clear(); - this.cookies.addAll(cookies); - - } - - public void setAlert(Alert alert) { - this.alert = alert; - } - - public Alert getAlert() { - return alert; - } - - public WebDriver driver() { - return focus; - } - - public void setFocus(WebDriver driver) { - this.focus =driver; - } - - public void clearAlert() { - this.alert=null; - } - - public void setVar(String key, Object value) { - this.vars.put(key,value); - logger.debug("context vars: '" + key + "'='" + value.toString() + "'"); - } - - public T getVar(String name, Class type) { - Object o = this.vars.get(name); - if (o==null) { return null; } - - if (type.isAssignableFrom(o.getClass())) { - return type.cast(o); - } - throw new RuntimeException("Could not cast named var '" + name + "' to a " + type.getCanonicalName()); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverAction.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverAction.java deleted file mode 100644 index 72c04fd79..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverAction.java +++ /dev/null @@ -1,63 +0,0 @@ -package io.nosqlbench.driver.webdriver; - -import io.nosqlbench.driver.webdriver.verbs.WebDriverVerbs; -import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver; -import io.nosqlbench.engine.api.activityapi.core.SyncAction; -import io.nosqlbench.engine.api.activityimpl.ActivityDef; -import io.nosqlbench.engine.api.templating.CommandTemplate; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -/** - * Holds the definition and tracking state for a web driver command. - */ -public class WebDriverAction implements SyncAction, ActivityDefObserver { - private final static Logger logger = LogManager.getLogger(WebDriverAction.class); - - private final WebDriverActivity activity; - private final int slot; - // warn or count, or stop - private String errors; - private boolean dryrun; - private WebContext context; - - public WebDriverAction(WebDriverActivity activity, int slot) { - super(); - this.activity = activity; - this.slot = slot; - } - - @Override - public void init() { - onActivityDefUpdate(activity.getActivityDef()); - } - - @Override - public void onActivityDefUpdate(ActivityDef activityDef) { - this.errors = activityDef.getParams().getOptionalString("errors").orElse("stop"); - this.dryrun = activityDef.getParams().getOptionalBoolean("dryrun").orElse(false); - this.context = activity.getWebContext(slot); - } - - // TODO: resolve inner templates early, perhaps optionally - // As it is right now, all commands are resolved dynamically, which is still not going to be the limiting - // factor. - @Override - public int runCycle(long cycle) { - - CommandTemplate commandTemplate = activity.getOpSequence().apply(cycle); - try { - WebDriverVerbs.execute(cycle, commandTemplate, context, dryrun); - return 0; - - } catch (Exception e) { - logger.error("Error with cycle(" + cycle + "), statement(" + commandTemplate.getName() + "): " + e.getMessage()); - if (errors.equals("stop")) { - throw e; - } - return 1; - } - - } - -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverActivity.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverActivity.java deleted file mode 100644 index bbcd558d4..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverActivity.java +++ /dev/null @@ -1,229 +0,0 @@ -package io.nosqlbench.driver.webdriver; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import io.nosqlbench.driver.webdriver.side.Command; -import io.nosqlbench.driver.webdriver.side.SideConfig; -import io.nosqlbench.driver.webdriver.side.Test; -import io.nosqlbench.engine.api.activityapi.planning.OpSequence; -import io.nosqlbench.engine.api.activityapi.planning.SequencePlanner; -import io.nosqlbench.engine.api.activityapi.planning.SequencerType; -import io.nosqlbench.engine.api.activityconfig.StatementsLoader; -import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate; -import io.nosqlbench.engine.api.activityconfig.yaml.StmtsDocList; -import io.nosqlbench.engine.api.activityimpl.ActivityDef; -import io.nosqlbench.engine.api.activityimpl.SimpleActivity; -import io.nosqlbench.engine.api.templating.CommandTemplate; -import io.nosqlbench.engine.api.templating.StrInterpolator; -import io.nosqlbench.nb.api.content.NBIO; -import io.nosqlbench.nb.api.errors.BasicError; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.chrome.ChromeDriver; -import org.openqa.selenium.chrome.ChromeOptions; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.ConcurrentHashMap; - -public class WebDriverActivity extends SimpleActivity { - - private final static Logger logger = LogManager.getLogger(WebDriverActivity.class); - - // private final StmtsDocList stmtsDocList; - private OpSequence opSequence; - - private final ConcurrentHashMap contexts = new ConcurrentHashMap<>(); -// private static ThreadLocal TL_WebContext = new ThreadLocal<>(); - - public WebDriverActivity(ActivityDef activityDef) { - super(activityDef); - } - - @Override - public void initActivity() { - super.initActivity(); - this.opSequence = initOpSequence(); - onActivityDefUpdate(activityDef); - setDefaultsFromOpSequence(opSequence); - int threads = getActivityDef().getThreads(); - logger.info("pre-initializing web browsers"); - for (int i = 0; i < threads; i++) { - getWebContext(i); - } - } - - private OpSequence initOpSequence() { - OpSequence sequence; - - String yaml_loc = getParams().getOptionalString("yaml","workload").orElse(null); - String side_loc = getParams().getOptionalString("side").orElse(null); - - if (yaml_loc == null && side_loc == null) { - throw new BasicError("You must provide yaml= or side=, but neither was found"); - } - if (yaml_loc != null && side_loc != null) { - throw new BasicError("You must provide either yaml= or side=, but not both."); - } - if (yaml_loc != null) { - sequence=initOpSequenceFromYaml(); - } else { - sequence=initOpSequenceFromSide(); - } - - if (sequence.getSequence().length==0) { - logger.warn("The sequence contains zero operations."); - } - return sequence; - - } - - private OpSequence initOpSequenceFromSide() { - - Optional sideFile = activityDef.getParams().getOptionalString("side"); - String sideToImport = sideFile.get(); - String side = NBIO.all().name(sideToImport).extension("side").one().asString(); - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - SideConfig sc = gson.fromJson(side, SideConfig.class); - String sideName = sc.getName(); - String sideUrl = sc.getUrl(); - - LinkedHashMap commands = new LinkedHashMap<>(); - for (Test test : sc.getTests()) { - int idx=0; - StringBuilder testBuilder = new StringBuilder(); - for (Command command : test.getCommands()) { - StringBuilder cmdBuilder = new StringBuilder(); - String cmd = command.getCommand(); - cmdBuilder.append(cmd); - if (command.getCommand().equals("open")) { - cmdBuilder.append(" url='").append(sideUrl.replaceAll("'","\\\\'")).append("'"); - } - - if (command.getTarget() != null && !command.getTarget().isEmpty()) { - String tg=null; - if (command.getTargets().size()>0) { - for (int i = 0; i < command.getTargets().size(); i++) { - List strings = command.getTargets().get(i); - if (strings.get(1).equals("xpath:idRelative")) { - logger.debug("favoring xpath form of selector:" + strings.get(0)); - tg=strings.get(0); - } - } - } - if (tg==null) { - tg = command.getTarget(); - } - cmdBuilder.append(" target='").append(tg.replaceAll("'","\\\\'")).append("'"); - - } - if (command.getValue() != null && !command.getValue().isEmpty()) { - cmdBuilder.append(" value='").append(command.getValue().replaceAll("'","\\\\'")).append("'"); - } - cmdBuilder.append("\n"); - logger.debug("build cmd: '" + testBuilder + "'"); - String cmdName = sideName+"_"+String.format("%s_%03d", sideName, ++idx); - commands.put(cmdName,cmdBuilder.toString()); - } - } - - String export = activityDef.getParams().getOptionalString("export").orElse(null); - if (export!=null) { - Path exportTo = Path.of(export); - if (Files.exists(exportTo)) { - throw new BasicError("File exists: " + exportTo + ", remove it first."); - } - try { - StringBuilder stmts = new StringBuilder(); - stmts.append("statements:\n"); - commands.forEach((name, cmd)-> { - System.out.println("name: " + name); - System.out.println("cmd: " + cmd); - stmts.append(" - ").append(name).append(": ").append(cmd); - }); - Files.writeString(exportTo,stmts.toString()); - } catch (IOException e) { - throw new RuntimeException(e); - } - logger.info("completed importing from " + sideFile + " to " + exportTo); - System.exit(0); - } - - SequencerType sequencerType = getParams() - .getOptionalString("seq") - .map(SequencerType::valueOf) - .orElse(SequencerType.bucket); - SequencePlanner planner = new SequencePlanner<>(sequencerType); - commands.forEach((name,cmd) -> { - CommandTemplate commandTemplate = new CommandTemplate(name, cmd, Map.of(), Map.of(),List.of()); - planner.addOp(commandTemplate,(c) -> 1L); - }); - OpSequence sequence = planner.resolve(); - return sequence; - } - - private OpSequence initOpSequenceFromYaml() { - StrInterpolator interp = new StrInterpolator(activityDef); - String yaml_loc = activityDef.getParams().getOptionalString("yaml", "workload").orElse("default"); - StmtsDocList stmtsDocList = StatementsLoader.loadPath(logger, yaml_loc, interp, "activities"); - - SequencerType sequencerType = getParams() - .getOptionalString("seq") - .map(SequencerType::valueOf) - .orElse(SequencerType.bucket); - SequencePlanner planner = new SequencePlanner<>(sequencerType); - - String tagfilter = activityDef.getParams().getOptionalString("tags").orElse(""); - List stmts = stmtsDocList.getStmts(tagfilter); - - if (stmts.size() == 0) { - throw new BasicError("There were no active statements with tag filter '" + tagfilter + "'"); - } - - for (OpTemplate optpl : stmts) { - long ratio = optpl.getParamOrDefault("ratio", 1); - CommandTemplate cmd = new CommandTemplate(optpl); - planner.addOp(cmd, ratio); - } - return planner.resolve(); - } - - public OpSequence getOpSequence() { - return opSequence; - } - - - public synchronized WebContext getWebContext(int slot) { - try { - WebContext context = contexts.get(slot); - if (context == null) { - logger.info("initializing chromedriver for thread " + slot); - System.setProperty("webdriver.http.factory", "okhttp"); - ChromeOptions chromeOptions = new ChromeOptions(); - chromeOptions.setHeadless(activityDef.getParams().getOptionalBoolean("headless").orElse(false)); - WebDriver webdriver = new ChromeDriver(chromeOptions); - context = new WebContext(webdriver); - contexts.put(slot, context); - } else { - logger.info("using cached chromedriver for thread " + slot); - } - return context; - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - @Override - public void shutdownActivity() { - contexts.forEach((s, d) -> { - logger.debug("closing driver for thread " + s); - d.driver().close(); - }); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverActivityType.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverActivityType.java deleted file mode 100644 index 1390e8ec0..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverActivityType.java +++ /dev/null @@ -1,36 +0,0 @@ -package io.nosqlbench.driver.webdriver; - -import io.nosqlbench.engine.api.activityapi.core.Action; -import io.nosqlbench.engine.api.activityapi.core.ActionDispenser; -import io.nosqlbench.engine.api.activityapi.core.Activity; -import io.nosqlbench.engine.api.activityapi.core.ActivityType; -import io.nosqlbench.engine.api.activityimpl.ActivityDef; -import io.nosqlbench.nb.annotations.Service; - -@Service(value= ActivityType.class, selector="webdriver") -public class WebDriverActivityType implements ActivityType { - - @Override - public WebDriverActivity getActivity(ActivityDef activityDef) { - return new WebDriverActivity(activityDef); - } - - @Override - public ActionDispenser getActionDispenser(WebDriverActivity activity) { - return new WebDriverActionDispenser(activity); - } - - private static class WebDriverActionDispenser implements ActionDispenser { - - private final Activity activity; - - private WebDriverActionDispenser(Activity activity) { - this.activity = activity; - } - - @Override - public Action getAction(int slot) { - return new WebDriverAction((WebDriverActivity) activity, slot); - } - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverCmdState.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverCmdState.java deleted file mode 100644 index 40259aae3..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/WebDriverCmdState.java +++ /dev/null @@ -1,13 +0,0 @@ -package io.nosqlbench.driver.webdriver; - -public class WebDriverCmdState { - - private final WebDriverAction action; - private final long cycle; - - public WebDriverCmdState(WebDriverAction action, long cycle) { - - this.action = action; - this.cycle = cycle; - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/Command.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/Command.java deleted file mode 100644 index 627959d90..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/Command.java +++ /dev/null @@ -1,72 +0,0 @@ -package io.nosqlbench.driver.webdriver.side; - -import java.util.List; - -public class Command { - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public String getCommand() { - return command; - } - - public void setCommand(String command) { - this.command = command; - } - - public String getTarget() { - return target; - } - - public void setTarget(String target) { - this.target = target; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public List> getTargets() { - return targets; - } - - public void setTargets(List> targets) { - this.targets = targets; - } - - String id; - String comment; - String command; - String target; - String value; - List> targets; - - @Override - public String toString() { - return "Command{" + - "id='" + id + '\'' + - ", comment='" + comment + '\'' + - ", command='" + command + '\'' + - ", target='" + target + '\'' + - ", value='" + value + '\'' + - ", targets=" + targets + - '}'; - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/SideConfig.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/SideConfig.java deleted file mode 100644 index 59b2e9273..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/SideConfig.java +++ /dev/null @@ -1,62 +0,0 @@ -package io.nosqlbench.driver.webdriver.side; - -import java.util.List; - -public class SideConfig { - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public List getTests() { - return tests; - } - - public void setTests(List tests) { - this.tests = tests; - } - - String id; - String name; - String version; - String url; - List tests; - - @Override - public String toString() { - return "SideConfig{" + - "id='" + id + '\'' + - ", name='" + name + '\'' + - ", version='" + version + '\'' + - ", url='" + url + '\'' + - ", tests=" + tests + - '}'; - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/Test.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/Test.java deleted file mode 100644 index 32e1c04cb..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/side/Test.java +++ /dev/null @@ -1,42 +0,0 @@ -package io.nosqlbench.driver.webdriver.side; - -import java.util.List; - -public class Test { - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public List getCommands() { - return commands; - } - - public void setCommands(List commands) { - this.commands = commands; - } - - String id; - String name; - List commands; - - @Override - public String toString() { - return "Test{" + - "id='" + id + '\'' + - ", name='" + name + '\'' + - ", commands=" + commands + - '}'; - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AcceptAlert.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AcceptAlert.java deleted file mode 100644 index 23818d406..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AcceptAlert.java +++ /dev/null @@ -1,21 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Alert; - -import java.security.InvalidParameterException; - -public class AcceptAlert implements WebDriverVerb { - @Override - public void execute(WebContext context) { - Alert alert = context.getAlert(); - if (alert==null) { - alert = context.driver().switchTo().alert(); - } - if (alert==null) { - throw new InvalidParameterException("Alert is not present"); - } - alert.accept(); - context.clearAlert(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AddCookie.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AddCookie.java deleted file mode 100644 index e6ee7a074..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AddCookie.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Cookie; - -public class AddCookie implements WebDriverVerb { - - private final Cookie cookie; - - public AddCookie(Cookie cookie) { - this.cookie = cookie; - } - - @Override - public void execute(WebContext context) { - context.driver().manage().addCookie(this.cookie); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AssertElement.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AssertElement.java deleted file mode 100644 index c0daf5b09..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/AssertElement.java +++ /dev/null @@ -1,23 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.openqa.selenium.By; -import org.openqa.selenium.WebElement; - -public class AssertElement implements WebDriverVerb { - private final static Logger logger = LogManager.getLogger(AssertElement.class); - private final By by; - - public AssertElement(By by) { - this.by = by; - } - - @Override - public void execute(WebContext context) { - WebElement element = context.driver().findElement(by); - context.pushElement(element); - } - -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Bys.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Bys.java deleted file mode 100644 index 5845be801..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Bys.java +++ /dev/null @@ -1,31 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import org.openqa.selenium.By; - -import java.util.function.Function; - -public enum Bys { - id(By::id), - linkText(By::linkText), - name(By::name), - css(By::cssSelector), - xpath(By::xpath), - classname(By::className); - - private Function initializer; - - Bys(Function initializer) { - this.initializer = initializer; - } - - public static By get(String by) { - Bys bys =classname; - String[] parts = by.split("=", 2); - if (parts.length==2) { - bys= Bys.valueOf(parts[0]); - by = parts[1]; - } - return bys.initializer.apply(by); - } - -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClearElement.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClearElement.java deleted file mode 100644 index 78f0ec468..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClearElement.java +++ /dev/null @@ -1,10 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class ClearElement implements WebDriverVerb { - @Override - public void execute(WebContext context) { - context.peekElement().clear(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClearElementBy.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClearElementBy.java deleted file mode 100644 index 6df9bc09e..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClearElementBy.java +++ /dev/null @@ -1,17 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.By; - -public class ClearElementBy implements WebDriverVerb { - private final By by; - - public ClearElementBy(By by) { - this.by = by; - } - - @Override - public void execute(WebContext context) { - context.peekElement().findElement(by).clear(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClickElementBy.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClickElementBy.java deleted file mode 100644 index b51c87057..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ClickElementBy.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.By; - -public class ClickElementBy implements WebDriverVerb { - - private final By by; - - public ClickElementBy(By by){ - this.by = by; - } - - @Override - public void execute(WebContext context) { - context.driver().findElement(by).click(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/CookieJar.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/CookieJar.java deleted file mode 100644 index c8533514d..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/CookieJar.java +++ /dev/null @@ -1,22 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import org.openqa.selenium.Cookie; - -import java.sql.Date; -import java.util.Map; -import java.util.Optional; - -public class CookieJar { - public static Cookie cookie(Map props) { - String name = props.get("name"); - String value = props.getOrDefault("value",""); - Cookie.Builder builder = new Cookie.Builder(name, value); - Optional.ofNullable(props.get("domain")).ifPresent(builder::domain); - Optional.ofNullable(props.get("expiry")).map(Date::valueOf).ifPresent(builder::expiresOn); - Optional.ofNullable(props.get("ishttponly")).map(Boolean::valueOf).ifPresent(builder::isHttpOnly); - Optional.ofNullable(props.get("issecure")).map(Boolean::valueOf).ifPresent(builder::isSecure); - Optional.ofNullable(props.get("path")).ifPresent(builder::path); - return builder.build(); - } - -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteAllCookies.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteAllCookies.java deleted file mode 100644 index f479c93d2..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteAllCookies.java +++ /dev/null @@ -1,11 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class DeleteAllCookies implements WebDriverVerb { - - @Override - public void execute(WebContext context) { - context.driver().manage().deleteAllCookies(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteCookie.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteCookie.java deleted file mode 100644 index 467dd95ea..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteCookie.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Cookie; - -public class DeleteCookie implements WebDriverVerb { - - private final Cookie cookie; - - public DeleteCookie(Cookie cookie) { - this.cookie = cookie; - } - - @Override - public void execute(WebContext context) { - context.driver().manage().deleteCookie(cookie); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteCookieNamed.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteCookieNamed.java deleted file mode 100644 index 5df20d332..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DeleteCookieNamed.java +++ /dev/null @@ -1,17 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class DeleteCookieNamed implements WebDriverVerb { - - private final String cookieName; - - public DeleteCookieNamed(String cookieName) { - this.cookieName = cookieName; - } - - @Override - public void execute(WebContext context) { - context.driver().manage().deleteCookieNamed(cookieName); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DismissAlert.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DismissAlert.java deleted file mode 100644 index b9e5008cf..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/DismissAlert.java +++ /dev/null @@ -1,21 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Alert; - -import java.security.InvalidParameterException; - -public class DismissAlert implements WebDriverVerb { - @Override - public void execute(WebContext context) { - Alert alert = context.getAlert(); - if (alert==null) { - alert = context.driver().switchTo().alert(); - } - if (alert==null) { - throw new InvalidParameterException("Alert is not present"); - } - alert.dismiss(); - context.clearAlert(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementScreenShot.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementScreenShot.java deleted file mode 100644 index 09f2d1f7a..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementScreenShot.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.OutputType; - -public class ElementScreenShot implements WebDriverVerb { - @Override - public void execute(WebContext context) { - String screenshotAs = context.peekElement().getScreenshotAs(OutputType.BASE64); - // This needs more work - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementSendKeys.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementSendKeys.java deleted file mode 100644 index 2efc18d5c..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementSendKeys.java +++ /dev/null @@ -1,16 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class ElementSendKeys implements WebDriverVerb { - private final CharSequence keys; - - public ElementSendKeys(CharSequence keys) { - this.keys = keys; - } - - @Override - public void execute(WebContext context) { - context.peekElement().sendKeys(keys); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementSubmit.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementSubmit.java deleted file mode 100644 index 286222993..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/ElementSubmit.java +++ /dev/null @@ -1,10 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class ElementSubmit implements WebDriverVerb { - @Override - public void execute(WebContext context) { - context.peekElement().submit(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElement.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElement.java deleted file mode 100644 index 0991cad67..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElement.java +++ /dev/null @@ -1,29 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.openqa.selenium.By; -import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.WebElement; - -public class FindElement implements WebDriverVerb { - private final static Logger logger = LogManager.getLogger(FindElement.class); - - private final By by; - - public FindElement(String by) { - this.by = Bys.get(by); - } - - @Override - public void execute(WebContext context) { - try { - WebElement element = context.driver().findElement(by); - context.pushElement(element); - } catch (NoSuchElementException nsee) { - context.pushElement(null); - } - } - -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElementInElementBy.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElementInElementBy.java deleted file mode 100644 index 1e60aa833..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElementInElementBy.java +++ /dev/null @@ -1,19 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.By; -import org.openqa.selenium.WebElement; - -public class FindElementInElementBy implements WebDriverVerb { - private final By by; - - public FindElementInElementBy(By by) { - this.by = by; - } - - @Override - public void execute(WebContext context) { - WebElement element = context.peekElement().findElement(by); - context.pushElement(element); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElements.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElements.java deleted file mode 100644 index 8c2015b05..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElements.java +++ /dev/null @@ -1,31 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.openqa.selenium.By; -import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.WebElement; - -import java.util.List; - -public class FindElements implements WebDriverVerb { - private final static Logger logger = LogManager.getLogger(FindElements.class); - - private final By by; - - public FindElements(String by) { - this.by = Bys.get(by); - } - - @Override - public void execute(WebContext context) { - try { - List elements = context.driver().findElements(by); - context.setElements(elements); - } catch (NoSuchElementException nsee) { - context.pushElement(null); - } - } - -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElementsInElementBy.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElementsInElementBy.java deleted file mode 100644 index c8cee2780..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FindElementsInElementBy.java +++ /dev/null @@ -1,22 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.By; -import org.openqa.selenium.WebElement; - -import java.util.List; - -public class FindElementsInElementBy implements WebDriverVerb { - - private final By by; - - public FindElementsInElementBy(By by) { - this.by = by; - } - - @Override - public void execute(WebContext context) { - List elements = context.peekElement().findElements(by); - context.setElements(elements); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FullScreen.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FullScreen.java deleted file mode 100644 index 0fdf0f285..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/FullScreen.java +++ /dev/null @@ -1,10 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class FullScreen implements WebDriverVerb { - @Override - public void execute(WebContext context) { - context.driver().manage().window().fullscreen(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Get.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Get.java deleted file mode 100644 index b5c958d26..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Get.java +++ /dev/null @@ -1,21 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; - -public class Get implements WebDriverVerb { - private final static Logger logger = LogManager.getLogger(Get.class); - - private final String target; - - public Get(String target) { - this.target = target; - } - - @Override - public void execute(WebContext context) { - context.driver().get(target); - } - -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetCookieNamed.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetCookieNamed.java deleted file mode 100644 index e680149ed..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetCookieNamed.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Cookie; - -public class GetCookieNamed implements WebDriverVerb { - private final String cookieName; - - public GetCookieNamed(String cookieName) { - this.cookieName = cookieName; - } - - @Override - public void execute(WebContext context) { - Cookie cookie = context.driver().manage().getCookieNamed(cookieName); - context.pushCookie(cookie); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetCookies.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetCookies.java deleted file mode 100644 index 4509849d6..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetCookies.java +++ /dev/null @@ -1,14 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Cookie; - -import java.util.Set; - -public class GetCookies implements WebDriverVerb { - @Override - public void execute(WebContext context) { - Set cookies = context.driver().manage().getCookies(); - context.setCookies(cookies); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementAttribute.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementAttribute.java deleted file mode 100644 index 04419f28d..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementAttribute.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class GetElementAttribute implements WebDriverVerb { - private final String name; - - public GetElementAttribute(String name) { - this.name = name; - } - - @Override - public void execute(WebContext context) { - String attribute = context.peekElement().getAttribute(name); - context.setVar("element.attribute",attribute); - } - -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementCssValue.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementCssValue.java deleted file mode 100644 index 73d52fc89..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementCssValue.java +++ /dev/null @@ -1,16 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -class GetElementCssValue implements WebDriverVerb { - - private final String propname; - public GetElementCssValue(String propname) { - this.propname = propname; - } - @Override - public void execute(WebContext context) { - String cssValue = context.peekElement().getCssValue(propname); - context.setVar("element.cssvalue",cssValue); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementLocation.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementLocation.java deleted file mode 100644 index 3120f4658..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementLocation.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Point; - -public class GetElementLocation implements WebDriverVerb { - @Override - public void execute(WebContext context) { - Point location = context.peekElement().getLocation(); - context.setVar("element.location",location); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementRect.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementRect.java deleted file mode 100644 index 428d42cc4..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementRect.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Rectangle; - -public class GetElementRect implements WebDriverVerb { - @Override - public void execute(WebContext context) { - Rectangle rect = context.peekElement().getRect(); - context.setVar("element.rect",rect); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementSize.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementSize.java deleted file mode 100644 index 5650d3316..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementSize.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Dimension; - -public class GetElementSize implements WebDriverVerb { - @Override - public void execute(WebContext context) { - Dimension size = context.peekElement().getSize(); - context.setVar("element.size",size); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementTagname.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementTagname.java deleted file mode 100644 index dae8893e5..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementTagname.java +++ /dev/null @@ -1,11 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class GetElementTagname implements WebDriverVerb { - @Override - public void execute(WebContext context) { - String tagName = context.peekElement().getTagName(); - context.setVar("element.tagname",tagName); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementText.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementText.java deleted file mode 100644 index a055929d1..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/GetElementText.java +++ /dev/null @@ -1,11 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class GetElementText implements WebDriverVerb { - @Override - public void execute(WebContext context) { - String text = context.peekElement().getText(); - context.setVar("element.text",text); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementDisplayed.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementDisplayed.java deleted file mode 100644 index ff9051765..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementDisplayed.java +++ /dev/null @@ -1,11 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class IsElementDisplayed implements WebDriverVerb { - @Override - public void execute(WebContext context) { - boolean displayed = context.peekElement().isDisplayed(); - context.setVar("element.displayed",displayed); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementEnabled.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementEnabled.java deleted file mode 100644 index 004e5cee4..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementEnabled.java +++ /dev/null @@ -1,11 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class IsElementEnabled implements WebDriverVerb { - @Override - public void execute(WebContext context) { - boolean enabled = context.peekElement().isEnabled(); - context.setVar("element.enabled",enabled); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementSelected.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementSelected.java deleted file mode 100644 index 17f2d3a28..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/IsElementSelected.java +++ /dev/null @@ -1,11 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class IsElementSelected implements WebDriverVerb { - @Override - public void execute(WebContext context) { - boolean selected = context.peekElement().isSelected(); - context.setVar("element.selected",selected); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/MouseOut.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/MouseOut.java deleted file mode 100644 index bfb8bcd9c..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/MouseOut.java +++ /dev/null @@ -1,17 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.By; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.interactions.Actions; - -public class MouseOut implements WebDriverVerb { - @Override - public void execute(WebContext context) { - WebDriver driver = context.driver(); - WebElement element = driver.findElement(By.tagName("body")); - Actions actions = new Actions(driver); - actions.moveToElement(element, 0, 0).perform(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/MouseOver.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/MouseOver.java deleted file mode 100644 index cd5b77db5..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/MouseOver.java +++ /dev/null @@ -1,23 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.By; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.interactions.Actions; - -public class MouseOver implements WebDriverVerb { - private final By by; - - public MouseOver(By by) { - this.by = by; - } - - @Override - public void execute(WebContext context) { - WebDriver driver = context.driver(); - WebElement mouseOverElement = driver.findElement(by); - Actions actions = new Actions(driver); - actions.moveToElement(mouseOverElement); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateBack.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateBack.java deleted file mode 100644 index ccc9b0ae3..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateBack.java +++ /dev/null @@ -1,11 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class NavigateBack implements WebDriverVerb { - - @Override - public void execute(WebContext context) { - context.driver().navigate().back(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateForward.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateForward.java deleted file mode 100644 index 199fd4973..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateForward.java +++ /dev/null @@ -1,10 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class NavigateForward implements WebDriverVerb { - @Override - public void execute(WebContext context) { - context.driver().navigate().forward(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateRefresh.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateRefresh.java deleted file mode 100644 index 05cea5803..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateRefresh.java +++ /dev/null @@ -1,10 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class NavigateRefresh implements WebDriverVerb { - @Override - public void execute(WebContext context) { - context.driver().navigate().refresh(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateTo.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateTo.java deleted file mode 100644 index 22b85e3a8..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/NavigateTo.java +++ /dev/null @@ -1,24 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -import java.net.MalformedURLException; -import java.net.URL; - -public class NavigateTo implements WebDriverVerb { - - private final URL url; - - public NavigateTo(String to) { - try { - this.url = new URL(to); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } - - @Override - public void execute(WebContext context) { - context.driver().navigate().to(url); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Open.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Open.java deleted file mode 100644 index e63e192a2..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/Open.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class Open implements WebDriverVerb { - private final String url; - private final String target; - - public Open(String url, String target) { - this.url = url; - this.target = target; - } - - @Override - public void execute(WebContext context) { - context.driver().get(url+target); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SendKeysToAlert.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SendKeysToAlert.java deleted file mode 100644 index e624e624f..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SendKeysToAlert.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Alert; - -import java.security.InvalidParameterException; - -public class SendKeysToAlert implements WebDriverVerb { - private final String keys; - - public SendKeysToAlert(String keys) { - this.keys = keys; - } - - @Override - public void execute(WebContext context) { - Alert alert = context.getAlert(); - if (alert==null) { - alert = context.driver().switchTo().alert(); - } - if (alert==null) { - throw new InvalidParameterException("Alert is not present"); - } - alert.sendKeys(keys); - context.clearAlert(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SetWindowSize.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SetWindowSize.java deleted file mode 100644 index a02ac0c3e..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SetWindowSize.java +++ /dev/null @@ -1,25 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Dimension; - -public class SetWindowSize implements WebDriverVerb { - private final int width; - private final int height; - - public SetWindowSize(int width, int height) { - this.width = width; - this.height = height; - } - - public SetWindowSize(String size) { - String[] xes = size.split("x"); - this.width = Integer.parseInt(xes[0]); - this.height = Integer.parseInt(xes[1]); - } - - @Override - public void execute(WebContext context) { - context.driver().manage().window().setSize(new Dimension(width, height)); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToActiveElement.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToActiveElement.java deleted file mode 100644 index 8c663292e..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToActiveElement.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.WebElement; - -public class SwitchToActiveElement implements WebDriverVerb { - @Override - public void execute(WebContext context) { - WebElement webElement = context.driver().switchTo().activeElement(); - context.pushElement(webElement); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToAlert.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToAlert.java deleted file mode 100644 index b4a8ba525..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToAlert.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Alert; - -public class SwitchToAlert implements WebDriverVerb { - @Override - public void execute(WebContext context) { - Alert alert = context.driver().switchTo().alert(); - context.setAlert(alert); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToDefaultContent.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToDefaultContent.java deleted file mode 100644 index 8a9d374a8..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToDefaultContent.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.WebDriver; - -public class SwitchToDefaultContent implements WebDriverVerb { - @Override - public void execute(WebContext context) { - WebDriver driver = context.driver().switchTo().defaultContent(); - context.setFocus(driver); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameByName.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameByName.java deleted file mode 100644 index 461ad6b39..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameByName.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.WebDriver; - -public class SwitchToFrameByName implements WebDriverVerb { - private String name; - - public SwitchToFrameByName(String name) { - this.name = name; - } - - @Override - public void execute(WebContext context) { - WebDriver frame = context.driver().switchTo().frame(this.name); - context.setFocus(frame); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameElement.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameElement.java deleted file mode 100644 index 887489f23..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameElement.java +++ /dev/null @@ -1,19 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; - -import java.security.InvalidParameterException; - -public class SwitchToFrameElement implements WebDriverVerb { - @Override - public void execute(WebContext context) { - WebElement webElement = context.peekElement(); - if (webElement==null) { - throw new InvalidParameterException("There was no previously found element to switch to."); - } - WebDriver frame = context.driver().switchTo().frame(webElement); - context.setFocus(frame); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameElementBy.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameElementBy.java deleted file mode 100644 index b190c4062..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameElementBy.java +++ /dev/null @@ -1,22 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.By; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; - -public class SwitchToFrameElementBy implements WebDriverVerb { - - private final By by; - - public SwitchToFrameElementBy(String by) { - this.by = Bys.get(by); - } - - @Override - public void execute(WebContext context) { - WebElement element = context.driver().findElement(by); - WebDriver frame = context.driver().switchTo().frame(element); - context.setFocus(frame); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameIdx.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameIdx.java deleted file mode 100644 index 13de8232b..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToFrameIdx.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.WebDriver; - -public class SwitchToFrameIdx implements WebDriverVerb { - private final int index; - - public SwitchToFrameIdx(int index) { - this.index = index; - } - - @Override - public void execute(WebContext context) { - WebDriver frame = context.driver().switchTo().frame(index); - context.setFocus(frame); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToParentFrame.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToParentFrame.java deleted file mode 100644 index 360b22820..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToParentFrame.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.WebDriver; - -public class SwitchToParentFrame implements WebDriverVerb { - @Override - public void execute(WebContext context) { - WebDriver webDriver = context.driver().switchTo().parentFrame(); - context.setFocus(webDriver); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToWindow.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToWindow.java deleted file mode 100644 index e3d58d52a..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/SwitchToWindow.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.WebDriver; - -public class SwitchToWindow implements WebDriverVerb { - private final String windowName; - - public SwitchToWindow(String windowName) { - this.windowName = windowName; - } - - @Override - public void execute(WebContext context) { - WebDriver window = context.driver().switchTo().window(this.windowName); - context.setFocus(window); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WebDriverVerb.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WebDriverVerb.java deleted file mode 100644 index 8907c504a..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WebDriverVerb.java +++ /dev/null @@ -1,17 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.WebDriver; - -/** - * All WebDriverVerb implementations are executable commands. - */ -public interface WebDriverVerb { - /** - * Execute the command. - * - * @param context The context object allows verbs to do have state from one command to the next. It is a - * {@link ThreadLocal} object which can be modified by any verb. - */ - void execute(WebContext context); -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WebDriverVerbs.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WebDriverVerbs.java deleted file mode 100644 index 2d414664f..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WebDriverVerbs.java +++ /dev/null @@ -1,146 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import io.nosqlbench.engine.api.templating.CommandTemplate; -import io.nosqlbench.nb.api.errors.BasicError; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import java.security.InvalidParameterException; -import java.util.Map; -import java.util.Optional; -import java.util.function.Function; - -/** - * Inspiration for how to make this work consistently with the exporter logic - * is found at - * - * - * The JUnit exporter command generator - */ -public class WebDriverVerbs { - private final static Logger logger = LogManager.getLogger(WebDriverVerbs.class); - public final static String COMMAND = "command"; - - public enum Verb { - - open(Open.class, (m) -> new Open(m.get("url"),m.get("target"))), - get(Get.class, (m) -> new Get(m.get("target"))), - mouseOver(MouseOver.class, (m) -> new MouseOver(Bys.get(m.get("target")))), - mouseOut(MouseOut.class,(m) -> new MouseOut()), - setWindowSize(SetWindowSize.class,(m) -> new SetWindowSize(m.get("target"))), - -// find_element(FindElement.class, (m) -> new FindElement(m.get("by"))), -// find_elements(FindElements.class, (m) -> new FindElements(m.get("by"))), -// -// // navigation -// back(NavigateBack.class, (m) -> new NavigateBack()), -// forward(NavigateForward.class, (m) -> new NavigateForward()), -// refresh(NavigateRefresh.class, (m) -> new NavigateRefresh()), -// to(NavigateTo.class, (m) -> new NavigateTo(m.get("to"))), -// -// // options -// add_cookie(AddCookie.class, (m) -> new AddCookie(CookieJar.cookie(m))), -// delete_cookie(DeleteCookie.class, (m) -> new DeleteCookie(CookieJar.cookie(m))), -// delete_all_cookies(DeleteAllCookies.class, (m) -> new DeleteAllCookies()), -// delete_cookie_named(DeleteCookieNamed.class, (m) -> new DeleteCookieNamed(m.get("name"))), -// get_cookie_named(GetCookieNamed.class, (m) -> new GetCookieNamed(m.get("name"))), -// get_cookies(GetCookies.class, (m) -> new GetCookies()), -// -// // TargetLocator (switchTo) -// switchto_active_element(SwitchToActiveElement.class, (m) -> new SwitchToActiveElement()), -// switchto_alert(SwitchToAlert.class, (m) -> new SwitchToAlert()), -// switchto_default_content(SwitchToDefaultContent.class, (m) -> new SwitchToDefaultContent()), -// switchto_frame_idx(SwitchToFrameIdx.class, (m) -> new SwitchToFrameIdx(Integer.parseInt(m.get("index")))), -// switchto_frame_elem_by(SwitchToFrameElementBy.class, (m) -> new SwitchToFrameElementBy(m.get("by"))), -// switchto_frame_elem(SwitchToFrameElement.class, (m) -> new SwitchToFrameElement()), -// switchto_frame_name(SwitchToFrameByName.class, (m) -> new SwitchToFrameByName(m.get("name"))), -// switchto_parent_frame(SwitchToParentFrame.class, (m) -> new SwitchToParentFrame()), -// switchto_window(SwitchToWindow.class, (m) -> new SwitchToWindow(m.get("name"))), -// -// // Alert -// dismiss_alert(DismissAlert.class, (m) -> new DismissAlert()), -// accept_alert(AcceptAlert.class, (m) -> new AcceptAlert()), -// send_keys_to_alert(SendKeysToAlert.class, (m) -> new SendKeysToAlert(m.get("keys"))), -// -// // Window -// window_full_screen(FullScreen.class, (m) -> new FullScreen()), -// window_get_size(WindowGetSize.class, (m) -> new WindowGetSize()), -// setWindowSize(WindowSetSize.class, (m) -> new WindowSetSize(m.get("target"))), -// window_maximize(WindowMaximize.class, (m) -> new WindowMaximize()), -// window_set_position(WindowSetPosition.class, (m) -> new WindowSetPosition(m.get("x"),m.get("y"))), -// window_get_position(WindowGetPosition.class, (m) -> new WindowGetPosition()), -// -// // Elements -// click(ClickElementBy.class, (m) -> new ClickElementBy(Bys.get(m.get("target")))), -// clearElement(ClearElement.class, (m) -> new ClearElement()), -// clearElement_by(ClearElementBy.class, (m) -> new ClearElementBy(Bys.get(m.get("by")))), -// element_find_element_by(FindElementInElementBy.class, (m) -> new FindElementInElementBy(Bys.get(m.get("by")))), -// element_find_elements_by(FindElementsInElementBy.class, (m)->new FindElementsInElementBy(Bys.get(m.get("by")))), -// element_find_elements(FindElementsInElementBy.class, (m)->new FindElementsInElementBy(Bys.get(m.get("by")))), -// element_get_attribute(GetElementAttribute.class, (m) -> new GetElementAttribute(m.get("name"))), -// element_get_css_value(GetElementCssValue.class, (m) -> new GetElementCssValue(m.get("name"))), -// element_get_location(GetElementLocation.class, (m) -> new GetElementLocation()), -// element_get_rect(GetElementRect.class, (m) ->new GetElementRect()), -// element_get_size(GetElementSize.class, (m) -> new GetElementSize()), -// element_get_tagname(GetElementTagname.class, (m) -> new GetElementTagname()), -// element_get_text(GetElementText.class, (m) -> new GetElementText()), -// is_element_displayed(IsElementDisplayed.class, (m) -> new IsElementDisplayed()), -// is_element_enabled(IsElementEnabled.class, (m) -> new IsElementEnabled()), -// is_element_selected(IsElementSelected.class, (m) -> new IsElementSelected()), -// element_send_keys(ElementSendKeys.class, (m) -> new ElementSendKeys(m.get("keys"))), -// element_submit(ElementSubmit.class, (m) -> new ElementSubmit()), -// element_get_screenshot(ElementScreenShot.class, (m) -> new ElementScreenShot()), - - - ; - - private final Class verbClass; - private final Function, WebDriverVerb> initializer; - - Verb(Class verbClass, Function, WebDriverVerb> initializer) { - this.verbClass = verbClass; - this.initializer = initializer; - } - - public static Optional find(String command) { - try { - return Optional.of(valueOf(command)); - } catch (Exception e) { - return Optional.empty(); - } - } - - public WebDriverVerb resolve(Map commandProps) { - String cmd = commandProps.get(COMMAND); - if (cmd == null) { - throw new InvalidParameterException("command properties must always contain a 'command' entry'"); - } - Verb verb = valueOf(cmd); - return verb.initializer.apply(commandProps); - } - } - - public static void execute( - long cycle, - CommandTemplate commandTemplate, - WebContext context, - boolean dryrun - ) { - Map cmdprops = commandTemplate.getCommand(cycle); - logger.debug("cycle:" + cmdprops + " command:" + cmdprops); - String command = cmdprops.get("command"); - Optional oVerb = Verb.find(command); - Verb verb = oVerb.orElseThrow( - () -> new BasicError("I don't know how to '" + command + "'") - ); - WebDriverVerb resolve = verb.resolve(cmdprops); - if (dryrun) { - logger.info("skipping cycle " + cycle + " because dryrun is set to true"); - return; - } else { - logger.info("running cycle " + cycle + " because dryrun is set to false"); - } - resolve.execute(context); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowGetPosition.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowGetPosition.java deleted file mode 100644 index fb96ed4f9..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowGetPosition.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Point; - -public class WindowGetPosition implements WebDriverVerb { - @Override - public void execute(WebContext context) { - Point position = context.driver().manage().window().getPosition(); - context.setVar("window.position", position); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowGetSize.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowGetSize.java deleted file mode 100644 index b0069ff5e..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowGetSize.java +++ /dev/null @@ -1,12 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Dimension; - -public class WindowGetSize implements WebDriverVerb { - @Override - public void execute(WebContext context) { - Dimension size = context.driver().manage().window().getSize(); - context.setVar("window.size",size); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowMaximize.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowMaximize.java deleted file mode 100644 index 3f6410fbf..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowMaximize.java +++ /dev/null @@ -1,10 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; - -public class WindowMaximize implements WebDriverVerb { - @Override - public void execute(WebContext context) { - context.driver().manage().window().maximize(); - } -} diff --git a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowSetPosition.java b/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowSetPosition.java deleted file mode 100644 index b496879c1..000000000 --- a/driver-web/src/main/java/io/nosqlbench/driver/webdriver/verbs/WindowSetPosition.java +++ /dev/null @@ -1,19 +0,0 @@ -package io.nosqlbench.driver.webdriver.verbs; - -import io.nosqlbench.driver.webdriver.WebContext; -import org.openqa.selenium.Point; - -public class WindowSetPosition implements WebDriverVerb { - private final int x; - private final int y; - - public WindowSetPosition(String x, String y) { - this.x = Integer.parseInt(x); - this.y = Integer.parseInt(y); - } - - @Override - public void execute(WebContext context) { - context.driver().manage().window().setPosition(new Point(x, y)); - } -} diff --git a/driver-web/src/main/resources/webdriver.md b/driver-web/src/main/resources/webdriver.md deleted file mode 100644 index 85a072051..000000000 --- a/driver-web/src/main/resources/webdriver.md +++ /dev/null @@ -1,3 +0,0 @@ -# WebDriver Driver - -welcome to the experimental webdriver prototype for nosqlbench. diff --git a/driver-web/src/test/java/io/nosqlbench/driver/webdriver/ExampleWebScript.java b/driver-web/src/test/java/io/nosqlbench/driver/webdriver/ExampleWebScript.java deleted file mode 100644 index c2cd2fb27..000000000 --- a/driver-web/src/test/java/io/nosqlbench/driver/webdriver/ExampleWebScript.java +++ /dev/null @@ -1,61 +0,0 @@ -package io.nosqlbench.driver.webdriver; - -import io.nosqlbench.nb.api.testutils.Perf; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.chrome.ChromeDriver; -import org.openqa.selenium.htmlunit.HtmlUnitDriver; - - -/** - * References: - *
    - *
  • https://www.guru99.com/selenium-with-htmlunit-driver-phantomjs.html
  • - *
  • - *
- */ -public class ExampleWebScript { - - @Test - @Disabled - public void getDocsSiteChromeDriver() { - System.setProperty("webdriver.http.factory", "okhttp"); - WebDriver driver = new ChromeDriver(); - Perf perf = new Perf("chrome"); - int ops = 100; - try (Perf.Time time = perf.start("chrome",ops)) { - for (int i = 1; i <= ops; i++) { - System.out.print("."); - if ((i%10)==0) { System.out.println(i); } - driver.get("http://localhost:6081"); - } - } - System.out.println("!"); - - System.out.println(perf); -// driver.get("http://docs.nosqlbench.io/"); - driver.close(); - } - - @Test - @Disabled - public void getDocSiteWebHtml() { -// System.setProperty("webdriver.http.factory", "okhttp"); - WebDriver driver = new HtmlUnitDriver(false); - Perf perf = new Perf("htmlunit"); - int ops = 100; - try (Perf.Time time = perf.start("htmlunit",ops)) { - for (int i = 1; i <= ops; i++) { - System.out.print("."); - if ((i%10)==0) { System.out.println(i); } - driver.get("http://localhost:6081"); - } - } - System.out.println("!"); - - System.out.println(perf); -// driver.get("http://docs.nosqlbench.io/"); - driver.close(); - } -}