From 00615130588c8b2e0a01dcc8c480de95b4244a38 Mon Sep 17 00:00:00 2001 From: John Smart Date: Fri, 25 Dec 2015 20:57:00 +0100 Subject: [PATCH] Added a method to the WebDriverManager instance to retreive a named webdriver instance. --- .../webdriver/ThucydidesWebdriverManager.java | 5 ++++ .../core/webdriver/WebdriverContext.java | 26 +++++++++++++++++++ .../core/webdriver/WebdriverManager.java | 4 ++- 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 serenity-core/src/main/java/net/thucydides/core/webdriver/WebdriverContext.java diff --git a/serenity-core/src/main/java/net/thucydides/core/webdriver/ThucydidesWebdriverManager.java b/serenity-core/src/main/java/net/thucydides/core/webdriver/ThucydidesWebdriverManager.java index 777b18025a..fe4b797374 100644 --- a/serenity-core/src/main/java/net/thucydides/core/webdriver/ThucydidesWebdriverManager.java +++ b/serenity-core/src/main/java/net/thucydides/core/webdriver/ThucydidesWebdriverManager.java @@ -101,6 +101,11 @@ public WebDriver getWebdriver() { return currentDriver.or(getThreadLocalWebDriver(configuration, webDriverFactory, inThisTestThread().getCurrentDriverName())); } + @Override + public WebdriverContext inContext(String context) { + return new WebdriverContext(this, context); + } + private Optional currentDriver = Optional.absent(); @Override diff --git a/serenity-core/src/main/java/net/thucydides/core/webdriver/WebdriverContext.java b/serenity-core/src/main/java/net/thucydides/core/webdriver/WebdriverContext.java new file mode 100644 index 0000000000..f01170d5a5 --- /dev/null +++ b/serenity-core/src/main/java/net/thucydides/core/webdriver/WebdriverContext.java @@ -0,0 +1,26 @@ +package net.thucydides.core.webdriver; + +import org.openqa.selenium.WebDriver; + +public class WebdriverContext { + + private final WebdriverManager webdriverManager; + private final String context; + + public WebdriverContext(WebdriverManager webdriverManager, String context) { + this.webdriverManager = webdriverManager; + this.context = context; + } + + public WebDriver getWebdriver() { + String driverType = webdriverManager.getCurrentDriverName(); + String driverName = driverType + ":" + context; + return webdriverManager.getWebdriver(driverName); + } + + WebDriver getWebdriver(String driverType) { + String driverName = driverType + ":" + context; + return webdriverManager.getWebdriver(driverName); + } + +} diff --git a/serenity-core/src/main/java/net/thucydides/core/webdriver/WebdriverManager.java b/serenity-core/src/main/java/net/thucydides/core/webdriver/WebdriverManager.java index 4953e88b9b..10f95b6eec 100644 --- a/serenity-core/src/main/java/net/thucydides/core/webdriver/WebdriverManager.java +++ b/serenity-core/src/main/java/net/thucydides/core/webdriver/WebdriverManager.java @@ -15,7 +15,9 @@ public interface WebdriverManager { WebDriver getWebdriver(); - WebDriver getWebdriver(final String driver); + WebdriverContext inContext(String context); + + WebDriver getWebdriver(String driver); String getCurrentDriverName();