From 878e18657f69d6b246ebf15c958d64ca6552917c Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 5 Feb 2024 11:18:36 +0100 Subject: [PATCH] [grid] Fixing driver configuration parsing This covers the case again when the config is passed through the CLI. Fixes #13531 --- .../org/openqa/selenium/grid/node/config/NodeFlags.java | 7 ++++--- .../org/openqa/selenium/grid/node/config/NodeOptions.java | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/java/src/org/openqa/selenium/grid/node/config/NodeFlags.java b/java/src/org/openqa/selenium/grid/node/config/NodeFlags.java index dedc561404001..3d49df5f713b3 100644 --- a/java/src/org/openqa/selenium/grid/node/config/NodeFlags.java +++ b/java/src/org/openqa/selenium/grid/node/config/NodeFlags.java @@ -151,9 +151,10 @@ public class NodeFlags implements HasRoles { + "file to improve readability. Command line example: " + "--driver-configuration display-name=\"Firefox Nightly\" max-sessions=2 " + "webdriver-path=\"/usr/local/bin/geckodriver\" " - + "stereotype='{\"browserName\": \"firefox\", \"browserVersion\": \"86\", " - + "\"moz:firefoxOptions\": " - + "{\"binary\":\"/Applications/Firefox Nightly.app/Contents/MacOS/firefox\"}}'", + + "stereotype=\"{\\\"browserName\\\": \\\"firefox\\\", " + + "\\\"browserVersion\\\": \\\"86\\\", " + + "\\\"moz:firefoxOptions\\\": " + + "{\\\"binary\":\"/Applications/Firefox Nightly.app/Contents/MacOS/firefox\\\"}}\"", arity = 4, variableArity = true, splitter = NonSplittingSplitter.class) diff --git a/java/src/org/openqa/selenium/grid/node/config/NodeOptions.java b/java/src/org/openqa/selenium/grid/node/config/NodeOptions.java index 972e8b790db1f..8f7ea2dd68aaa 100644 --- a/java/src/org/openqa/selenium/grid/node/config/NodeOptions.java +++ b/java/src/org/openqa/selenium/grid/node/config/NodeOptions.java @@ -370,6 +370,10 @@ private void addDriverConfigs( .ifPresent( drivers -> { List> configList = new ArrayList<>(); + if (drivers.isEmpty()) { + // This is the case when the configuration is provided through the CLI. + config.getAll(NODE_SECTION, "driver-configuration").ifPresent(drivers::add); + } // iterate over driver configurations for (List driver : drivers) {