Skip to content
This repository was archived by the owner on Mar 25, 2025. It is now read-only.

Commit dae96e2

Browse files
committed
added ability to configure chrome driver location in WebTester configuration
1 parent 42ecbf8 commit dae96e2

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

webtester-core/src/main/java/info/novatec/testit/webtester/browser/factories/BaseBrowserFactory.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import info.novatec.testit.webtester.browser.WebDriverBrowser;
1313
import info.novatec.testit.webtester.browser.proxy.NoProxyConfiguration;
1414
import info.novatec.testit.webtester.browser.proxy.ProxyConfiguration;
15+
import info.novatec.testit.webtester.config.Configuration;
16+
import info.novatec.testit.webtester.config.builders.DefaultConfigurationBuilder;
1517

1618

1719
/**
@@ -28,7 +30,7 @@
2830
* @param <T> the type of the extending factory implementation - used for fluent API for certain methods
2931
* @since 2.1
3032
*/
31-
public class BaseBrowserFactory<T extends BrowserFactory> implements BrowserFactory {
33+
public class BaseBrowserFactory<T extends BrowserFactory> implements BrowserFactory {
3234

3335
private final Function<DesiredCapabilities, WebDriver> webDriverProducer;
3436
private ProxyConfiguration proxyConfiguration;
@@ -53,12 +55,16 @@ protected DesiredCapabilities getDefaultCapabilities() {
5355

5456
@Override
5557
public Browser createBrowser(DesiredCapabilities capabilities) {
56-
return createBrowser(webDriverProducer.apply(capabilities));
58+
Configuration configuration = new DefaultConfigurationBuilder().build();
59+
postProcessConfiguration(configuration);
60+
return WebDriverBrowser.forWebDriver(webDriverProducer.apply(capabilities)).withConfiguration(configuration).build();
5761
}
5862

5963
@Override
6064
public Browser createBrowser(WebDriver webDriver) {
61-
return WebDriverBrowser.buildForWebDriver(webDriver);
65+
Configuration configuration = new DefaultConfigurationBuilder().build();
66+
postProcessConfiguration(configuration);
67+
return WebDriverBrowser.forWebDriver(webDriver).withConfiguration(configuration).build();
6268
}
6369

6470
protected void setOptionalProxyConfiguration(DesiredCapabilities capabilities) {
@@ -69,11 +75,15 @@ protected void setOptionalProxyConfiguration(DesiredCapabilities capabilities) {
6975
}
7076
}
7177

78+
protected void postProcessConfiguration(Configuration configuration) {
79+
// optional hook
80+
}
81+
7282
@Override
7383
@SuppressWarnings("unchecked")
7484
public T withProxyConfiguration(ProxyConfiguration configuration) {
7585
proxyConfiguration = configuration;
76-
return (T) this;
86+
return ( T ) this;
7787
}
7888

7989
}

webtester-core/src/main/java/info/novatec/testit/webtester/browser/factories/ChromeFactory.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.openqa.selenium.chrome.ChromeDriver;
44

55
import info.novatec.testit.webtester.browser.Browser;
6+
import info.novatec.testit.webtester.config.Configuration;
67

78

89
/**
@@ -24,8 +25,17 @@
2425
*/
2526
public class ChromeFactory extends BaseBrowserFactory<ChromeFactory> {
2627

28+
private static final String CHROME_DRIVER_LOCATION = "webdriver.chrome.driver";
29+
2730
public ChromeFactory() {
2831
super(ChromeDriver::new);
2932
}
3033

34+
@Override
35+
protected void postProcessConfiguration(Configuration configuration) {
36+
configuration.getStringProperty(CHROME_DRIVER_LOCATION).ifPresent(driverLocation -> {
37+
System.setProperty(CHROME_DRIVER_LOCATION, driverLocation);
38+
});
39+
}
40+
3141
}

0 commit comments

Comments
 (0)