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

Fixed Chrome options parsing to really use given values #44

Merged
merged 1 commit into from
Jun 2, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
Expand Down Expand Up @@ -780,19 +781,20 @@ protected void parseBrowserOptionsChrome(String browserOptions, Capabilities des
if (browserOptions != null && !"NONE".equalsIgnoreCase(browserOptions)) {
JSONObject jsonObject = (JSONObject) JSONValue.parse(browserOptions);
if (jsonObject != null) {
Map<String, Object> chromeOptions = new HashMap<String, Object>();
Iterator<?> iterator = jsonObject.entrySet().iterator();
while (iterator.hasNext()) {
Entry<?, ?> entry = (Entry<?, ?>) iterator.next();
String key = entry.getKey().toString();
logging.debug(String.format("Adding property: %s with value: %s (type: %s)",
key.toString(), entry.getValue(), entry.getValue().getClass()));
chromeOptions.put(key, entry.getValue());
List<String> args = new ArrayList<>();
for (Object arg : (JSONArray)jsonObject.get("args")) {
args.add("--"+arg.toString().replace("--", ""));
}
((ChromeOptions) desiredCapabilities).addArguments(args);
List<File> extensions = new ArrayList<>();
for (Object extension : (JSONArray)jsonObject.get("extensions")) {
extensions.add(new File(extension.toString().toString().replace('/', File.separatorChar)));
}
((ChromeOptions) desiredCapabilities).setCapability(ChromeOptions.CAPABILITY, chromeOptions);
if (browserOptions.contains("disable-extensions")) {
((ChromeOptions) desiredCapabilities).setExperimentalOption("useAutomationExtension", false);
}
((ChromeOptions) desiredCapabilities).addExtensions(extensions);
((ChromeOptions) desiredCapabilities).setExperimentalOption("prefs", jsonObject.get("prefs"));
if (browserOptions.contains("disable-extensions")) {
((ChromeOptions) desiredCapabilities).setExperimentalOption("useAutomationExtension", false);
}
} else {
logging.warn("Invalid browserOptions: " + browserOptions);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,20 @@ public void testCreateDesiredCapabilitiesForHtmlUnit() {
@Test
public void parseChromeBrowserOptions() {
ChromeOptions chromeOptions = new ChromeOptions();
String browserOptions = "{\"args\":[\"start-maximized\"],\"extensions\":[],\"prefs\":{\"intl.accept_languages\":\"de-AT\"}}";
String browserOptions = "{\"args\":[\"start-maximized\"],\"extensions\":[],\"prefs\":{\"intl.accept_languages\":\"de-AT\", \"intl.charset_default\":\"UTF-8\"}}";
bm.parseBrowserOptionsChrome(browserOptions, chromeOptions);
assertTrue(chromeOptions.getCapability("goog:chromeOptions").toString().contains("de-AT"));
assertTrue(chromeOptions.asMap().toString().contains("--start-maximized"));
assertTrue(chromeOptions.asMap().toString().contains("UTF-8"));
}

@Test
public void parseChromeCapabilities() {
ChromeOptions chromeOptions = new ChromeOptions();
String browserName = "googlechromeheadless";
String browserOptions = "{\"args\":[\"start-maximized\"],\"extensions\":[],\"prefs\":{\"intl.accept_languages\":\"de-AT\"}}";
String desiredCapabilitiesString = "{}";
Capabilities cap = bm.createCapabilities(browserName, desiredCapabilitiesString, browserOptions);
assertTrue(cap.asMap().toString().contains("--start-maximized"));
assertTrue(cap.asMap().toString().contains("--headless"));
}
}