|
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