commit 21fa9c671e3c3d1dc8e5a871e80d505475e7c27e
Author: Paul Hammant <[email protected]>
AuthorDate: Sat Mar 24 10:26:06 2012 -0500
Commit: Paul Hammant <[email protected]>
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();
}
}