|
9 | 9 | import java.net.MalformedURLException;
|
10 | 10 | import java.net.URL;
|
11 | 11 | import java.net.UnknownHostException;
|
| 12 | +import java.util.ArrayList; |
12 | 13 | import java.util.HashMap;
|
13 | 14 | import java.util.Iterator;
|
14 | 15 | import java.util.List;
|
@@ -780,19 +781,20 @@ protected void parseBrowserOptionsChrome(String browserOptions, Capabilities des
|
780 | 781 | if (browserOptions != null && !"NONE".equalsIgnoreCase(browserOptions)) {
|
781 | 782 | JSONObject jsonObject = (JSONObject) JSONValue.parse(browserOptions);
|
782 | 783 | if (jsonObject != null) {
|
783 |
| - Map<String, Object> chromeOptions = new HashMap<String, Object>(); |
784 |
| - Iterator<?> iterator = jsonObject.entrySet().iterator(); |
785 |
| - while (iterator.hasNext()) { |
786 |
| - Entry<?, ?> entry = (Entry<?, ?>) iterator.next(); |
787 |
| - String key = entry.getKey().toString(); |
788 |
| - logging.debug(String.format("Adding property: %s with value: %s (type: %s)", |
789 |
| - key.toString(), entry.getValue(), entry.getValue().getClass())); |
790 |
| - chromeOptions.put(key, entry.getValue()); |
| 784 | + List<String> args = new ArrayList<>(); |
| 785 | + for (Object arg : (JSONArray)jsonObject.get("args")) { |
| 786 | + args.add("--"+arg.toString().replace("--", "")); |
| 787 | + } |
| 788 | + ((ChromeOptions) desiredCapabilities).addArguments(args); |
| 789 | + List<File> extensions = new ArrayList<>(); |
| 790 | + for (Object extension : (JSONArray)jsonObject.get("extensions")) { |
| 791 | + extensions.add(new File(extension.toString().toString().replace('/', File.separatorChar))); |
791 | 792 | }
|
792 |
| - ((ChromeOptions) desiredCapabilities).setCapability(ChromeOptions.CAPABILITY, chromeOptions); |
793 |
| - if (browserOptions.contains("disable-extensions")) { |
794 |
| - ((ChromeOptions) desiredCapabilities).setExperimentalOption("useAutomationExtension", false); |
795 |
| - } |
| 793 | + ((ChromeOptions) desiredCapabilities).addExtensions(extensions); |
| 794 | + ((ChromeOptions) desiredCapabilities).setExperimentalOption("prefs", jsonObject.get("prefs")); |
| 795 | + if (browserOptions.contains("disable-extensions")) { |
| 796 | + ((ChromeOptions) desiredCapabilities).setExperimentalOption("useAutomationExtension", false); |
| 797 | + } |
796 | 798 | } else {
|
797 | 799 | logging.warn("Invalid browserOptions: " + browserOptions);
|
798 | 800 | }
|
|
0 commit comments