|
12 | 12 | import java.io.File;
|
13 | 13 | import java.io.IOException;
|
14 | 14 | import java.net.InetAddress;
|
15 |
| -import java.net.MalformedURLException; |
16 |
| -import java.net.URL; |
17 | 15 | import java.net.UnknownHostException;
|
18 | 16 | import java.nio.file.Files;
|
19 | 17 | import java.nio.file.Path;
|
20 | 18 | import java.time.Duration;
|
21 |
| -import java.util.HashMap; |
22 | 19 | import java.util.Locale;
|
23 | 20 | import java.util.Map;
|
24 | 21 | import java.util.logging.Logger;
|
|
63 | 60 | import org.openqa.selenium.firefox.FirefoxDriver;
|
64 | 61 | import org.openqa.selenium.firefox.FirefoxOptions;
|
65 | 62 | import org.openqa.selenium.firefox.GeckoDriverService;
|
66 |
| -import org.openqa.selenium.remote.Augmenter; |
67 | 63 | import org.openqa.selenium.remote.CapabilityType;
|
68 | 64 | import org.openqa.selenium.remote.LocalFileDetector;
|
69 | 65 | import org.openqa.selenium.remote.RemoteWebDriver;
|
@@ -113,19 +109,10 @@ private WebDriver createWebDriver(TestCleaner cleaner, TestName testName) throws
|
113 | 109 | return createContainerWebDriver(
|
114 | 110 | cleaner, "selenium/standalone-firefox:4.32.0", buildFirefoxOptions(testName));
|
115 | 111 | case "chrome-container":
|
116 |
| - return createContainerWebDriver(cleaner, "selenium/standalone-chrome:4.32.0", new ChromeOptions()); |
| 112 | + return createContainerWebDriver( |
| 113 | + cleaner, "selenium/standalone-chrome:4.32.0", buildChromeOptions(testName)); |
117 | 114 | case "chrome":
|
118 |
| - Map<String, String> prefs = new HashMap<>(); |
119 |
| - prefs.put(LANGUAGE_SELECTOR, "en"); |
120 |
| - ChromeOptions options = new ChromeOptions(); |
121 |
| - options.setExperimentalOption("prefs", prefs); |
122 |
| - if (HarRecorder.isCaptureHarEnabled()) { |
123 |
| - options.setAcceptInsecureCerts(true); |
124 |
| - options.setProxy(createSeleniumProxy(testName.get())); |
125 |
| - } |
126 |
| - |
127 |
| - setDriverPropertyIfMissing("chromedriver", ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY); |
128 |
| - return new ChromeDriver(options); |
| 115 | + return new ChromeDriver(buildChromeOptions(testName)); |
129 | 116 | case "safari":
|
130 | 117 | return new SafariDriver();
|
131 | 118 | case "saucelabs":
|
@@ -154,16 +141,16 @@ private WebDriver createWebDriver(TestCleaner cleaner, TestName testName) throws
|
154 | 141 | }
|
155 | 142 | }
|
156 | 143 |
|
157 |
| - private WebDriver buildRemoteWebDriver(Capabilities options) throws MalformedURLException { |
| 144 | + private WebDriver buildRemoteWebDriver(Capabilities options) { |
158 | 145 | String u = System.getenv("REMOTE_WEBDRIVER_URL");
|
159 | 146 | if (StringUtils.isBlank(u)) {
|
160 | 147 | throw new Error("remote-webdriver type browsers require REMOTE_WEBDRIVER_URL to be set");
|
161 | 148 | }
|
162 |
| - RemoteWebDriver driver = new RemoteWebDriver( |
163 |
| - new URL(u), // http://192.168.99.100:4444/wd/hub |
164 |
| - options); |
165 |
| - driver.setFileDetector(new LocalFileDetector()); |
166 |
| - return new Augmenter().augment(driver); |
| 149 | + // http://192.168.99.100:4444/wd/hub |
| 150 | + WebDriver driver = |
| 151 | + RemoteWebDriver.builder().address(u).addAlternative(options).build(); |
| 152 | + ((RemoteWebDriver) driver).setFileDetector(new LocalFileDetector()); |
| 153 | + return driver; |
167 | 154 | }
|
168 | 155 |
|
169 | 156 | private String getBrowser() {
|
@@ -196,9 +183,12 @@ private FirefoxOptions buildFirefoxOptions(TestName testName) throws IOException
|
196 | 183 |
|
197 | 184 | private ChromeOptions buildChromeOptions(TestName testName) throws IOException {
|
198 | 185 | ChromeOptions chromeOptions = new ChromeOptions();
|
| 186 | + chromeOptions.setExperimentalOption("prefs", Map.of(LANGUAGE_SELECTOR, "en")); |
| 187 | + chromeOptions.enableBiDi(); |
199 | 188 | if (HarRecorder.isCaptureHarEnabled()) {
|
200 | 189 | chromeOptions.setProxy(createSeleniumProxy(testName.get()));
|
201 | 190 | }
|
| 191 | + setDriverPropertyIfMissing("chromedriver", ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY); |
202 | 192 | return chromeOptions;
|
203 | 193 | }
|
204 | 194 |
|
@@ -260,10 +250,12 @@ public String toString() {
|
260 | 250 | Thread.sleep(3000); // Give the container and selenium some time to spawn
|
261 | 251 |
|
262 | 252 | try {
|
263 |
| - RemoteWebDriver remoteWebDriver = |
264 |
| - new RemoteWebDriver(new URL("http://127.0.0.1:" + controlPort + "/wd/hub"), capabilities); |
| 253 | + WebDriver driver = RemoteWebDriver.builder() |
| 254 | + .address("http://127.0.0.1:" + controlPort + "/wd/hub") |
| 255 | + .addAlternative(capabilities) |
| 256 | + .build(); |
265 | 257 | cleaner.addTask(cleanContainer);
|
266 |
| - return new Augmenter().augment(remoteWebDriver); |
| 258 | + return driver; |
267 | 259 | } catch (RuntimeException e) {
|
268 | 260 | cleanContainer.close();
|
269 | 261 | throw e;
|
|
0 commit comments