commit 21fa9c671e3c3d1dc8e5a871e80d505475e7c27e Author: Paul Hammant <p...@hammant.org> AuthorDate: Sat Mar 24 10:26:06 2012 -0500 Commit: Paul Hammant <p...@hammant.org> CommitDate: Sat Mar 24 10:26:06 2012 -0500
JBEHAVE-750: better webdriver provider adherence diff --git a/web-selenium/src/main/java/org/jbehave/web/selenium/FluentWebDriverPage.java b/web-selenium/src/main/java/org/jbehave/web/selenium/FluentWebDriverPage.java index af1c4bc..3d1930c 100644 --- a/web-selenium/src/main/java/org/jbehave/web/selenium/FluentWebDriverPage.java +++ b/web-selenium/src/main/java/org/jbehave/web/selenium/FluentWebDriverPage.java @@ -10,6 +10,7 @@ public abstract class FluentWebDriverPage extends WebDriverPage implements Fluen } private FluentWebDriverImpl fluentWebDriver() { + makeNonLazy(); return new FluentWebDriverImpl(webDriver()); } diff --git a/web-selenium/src/main/java/org/jbehave/web/selenium/WebDriverPage.java b/web-selenium/src/main/java/org/jbehave/web/selenium/WebDriverPage.java index 1b53fad..cdf3e9a 100644 --- a/web-selenium/src/main/java/org/jbehave/web/selenium/WebDriverPage.java +++ b/web-selenium/src/main/java/org/jbehave/web/selenium/WebDriverPage.java @@ -22,12 +22,12 @@ import org.openqa.selenium.WebElement; */ public abstract class WebDriverPage implements WebDriver, HasInputDevices, JavascriptExecutor, HasCapabilities { - private WebDriver webDriver; + private ThreadLocal<WebDriver> webDriver = new ThreadLocal<WebDriver>(); private final WebDriverProvider driverProvider; public WebDriverPage(WebDriverProvider driverProvider) { this.driverProvider = driverProvider; - this.webDriver = new LazyWebDriver(driverProvider); + this.webDriver.set(new LazyWebDriver(driverProvider)); } public void get(String url) { @@ -128,11 +128,11 @@ public abstract class WebDriverPage implements WebDriver, HasInputDevices, Javas protected synchronized void makeNonLazy() { // keep doing this per call as WebDriver instances changes per thread. - webDriver = driverProvider.get(); + webDriver.set(driverProvider.get()); } protected WebDriver webDriver() { - return webDriver; + return webDriver.get(); } }