From e030852468a4c9462573577b4ae4d986f427ea56 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Tue, 21 Nov 2023 18:40:09 +0000 Subject: [PATCH 01/10] Using properties for... - Setting the service driver and avoid using Selenium Manager - Removing the HTTP client one, as Java 11 is the default now. --- Distributor/start-selenium-grid-distributor.sh | 2 +- EventBus/start-selenium-grid-eventbus.sh | 2 +- Hub/start-selenium-grid-hub.sh | 2 +- NodeBase/start-selenium-node.sh | 9 ++++++++- NodeDocker/start-selenium-grid-docker.sh | 2 +- Router/start-selenium-grid-router.sh | 2 +- SessionQueue/start-selenium-grid-session-queue.sh | 2 +- Sessions/start-selenium-grid-sessions.sh | 2 +- Standalone/start-selenium-standalone.sh | 9 ++++++++- StandaloneDocker/start-selenium-grid-docker.sh | 2 +- 10 files changed, 24 insertions(+), 10 deletions(-) diff --git a/Distributor/start-selenium-grid-distributor.sh b/Distributor/start-selenium-grid-distributor.sh index 0a653e81e..f816ed672 100755 --- a/Distributor/start-selenium-grid-distributor.sh +++ b/Distributor/start-selenium-grid-distributor.sh @@ -65,7 +65,7 @@ else echo "Tracing is disabled" fi -java ${JAVA_OPTS:-$SE_JAVA_OPTS} -Dwebdriver.http.factory=jdk-http-client \ +java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ -jar /opt/selenium/selenium-server.jar \ --ext ${EXTRA_LIBS} distributor \ --sessions-host "${SE_SESSIONS_MAP_HOST}" --sessions-port "${SE_SESSIONS_MAP_PORT}" \ diff --git a/EventBus/start-selenium-grid-eventbus.sh b/EventBus/start-selenium-grid-eventbus.sh index f8fc6eca6..70fc3244b 100755 --- a/EventBus/start-selenium-grid-eventbus.sh +++ b/EventBus/start-selenium-grid-eventbus.sh @@ -30,7 +30,7 @@ else echo "Tracing is disabled" fi -java ${JAVA_OPTS:-$SE_JAVA_OPTS} -Dwebdriver.http.factory=jdk-http-client \ +java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ -jar /opt/selenium/selenium-server.jar \ --ext ${EXTRA_LIBS} event-bus \ --bind-host ${SE_BIND_HOST} \ diff --git a/Hub/start-selenium-grid-hub.sh b/Hub/start-selenium-grid-hub.sh index efc34668d..c6da59ae9 100755 --- a/Hub/start-selenium-grid-hub.sh +++ b/Hub/start-selenium-grid-hub.sh @@ -34,7 +34,7 @@ else fi -java ${JAVA_OPTS:-$SE_JAVA_OPTS} -Dwebdriver.http.factory=jdk-http-client \ +java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ -jar /opt/selenium/selenium-server.jar \ --ext ${EXTRA_LIBS} hub \ --session-request-timeout ${SE_SESSION_REQUEST_TIMEOUT} \ diff --git a/NodeBase/start-selenium-node.sh b/NodeBase/start-selenium-node.sh index fc5dc2f55..30e51a976 100755 --- a/NodeBase/start-selenium-node.sh +++ b/NodeBase/start-selenium-node.sh @@ -51,7 +51,14 @@ echo "Selenium Grid Node configuration: " cat "$CONFIG_FILE" echo "Starting Selenium Grid Node..." -java ${JAVA_OPTS:-$SE_JAVA_OPTS} -Dwebdriver.http.factory=jdk-http-client \ +CHROME_DRIVER_PATH_PROPERTY=-Dwebdriver.chrome.driver=/usr/bin/chromedriver +EDGE_DRIVER_PATH_PROPERTY=-Dwebdriver.edge.driver=/usr/bin/msedgedriver +GECKO_DRIVER_PATH_PROPERTY=-Dwebdriver.gecko.driver=/usr/bin/geckodriver + +java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ + ${CHROME_DRIVER_PATH_PROPERTY} \ + ${EDGE_DRIVER_PATH_PROPERTY} \ + ${GECKO_DRIVER_PATH_PROPERTY} \ -jar /opt/selenium/selenium-server.jar \ --ext ${EXTRA_LIBS} node \ --bind-host ${SE_BIND_HOST} \ diff --git a/NodeDocker/start-selenium-grid-docker.sh b/NodeDocker/start-selenium-grid-docker.sh index 760c34a85..cba7722c7 100755 --- a/NodeDocker/start-selenium-grid-docker.sh +++ b/NodeDocker/start-selenium-grid-docker.sh @@ -40,7 +40,7 @@ else echo "Tracing is disabled" fi -java ${JAVA_OPTS:-$SE_JAVA_OPTS} -Dwebdriver.http.factory=jdk-http-client \ +java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ -jar /opt/selenium/selenium-server.jar \ --ext ${EXTRA_LIBS} node \ --publish-events tcp://"${SE_EVENT_BUS_HOST}":${SE_EVENT_BUS_PUBLISH_PORT} \ diff --git a/Router/start-selenium-grid-router.sh b/Router/start-selenium-grid-router.sh index b99f675e5..6219a7559 100755 --- a/Router/start-selenium-grid-router.sh +++ b/Router/start-selenium-grid-router.sh @@ -65,7 +65,7 @@ else echo "Tracing is disabled" fi -java ${JAVA_OPTS:-$SE_JAVA_OPTS} -Dwebdriver.http.factory=jdk-http-client \ +java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ -jar /opt/selenium/selenium-server.jar \ --ext ${EXTRA_LIBS} router \ --sessions-host "${SE_SESSIONS_MAP_HOST}" --sessions-port "${SE_SESSIONS_MAP_PORT}" \ diff --git a/SessionQueue/start-selenium-grid-session-queue.sh b/SessionQueue/start-selenium-grid-session-queue.sh index 8138bbfef..da4a44825 100755 --- a/SessionQueue/start-selenium-grid-session-queue.sh +++ b/SessionQueue/start-selenium-grid-session-queue.sh @@ -30,7 +30,7 @@ else echo "Tracing is disabled" fi -java ${JAVA_OPTS:-$SE_JAVA_OPTS} -Dwebdriver.http.factory=jdk-http-client \ +java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ -jar /opt/selenium/selenium-server.jar \ --ext ${EXTRA_LIBS} sessionqueue \ --session-request-timeout ${SE_SESSION_REQUEST_TIMEOUT} \ diff --git a/Sessions/start-selenium-grid-sessions.sh b/Sessions/start-selenium-grid-sessions.sh index 01737dc32..ead3d74fa 100755 --- a/Sessions/start-selenium-grid-sessions.sh +++ b/Sessions/start-selenium-grid-sessions.sh @@ -45,7 +45,7 @@ else echo "Tracing is disabled" fi -java ${JAVA_OPTS:-$SE_JAVA_OPTS} -Dwebdriver.http.factory=jdk-http-client \ +java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ -jar /opt/selenium/selenium-server.jar \ --ext ${EXTRA_LIBS} sessions \ --publish-events tcp://"${SE_EVENT_BUS_HOST}":${SE_EVENT_BUS_PUBLISH_PORT} \ diff --git a/Standalone/start-selenium-standalone.sh b/Standalone/start-selenium-standalone.sh index 7af58b6e8..f060ce353 100755 --- a/Standalone/start-selenium-standalone.sh +++ b/Standalone/start-selenium-standalone.sh @@ -28,7 +28,14 @@ else echo "Tracing is disabled" fi -java ${JAVA_OPTS:-$SE_JAVA_OPTS} -Dwebdriver.http.factory=jdk-http-client \ +CHROME_DRIVER_PATH_PROPERTY=-Dwebdriver.chrome.driver=/usr/bin/chromedriver +EDGE_DRIVER_PATH_PROPERTY=-Dwebdriver.edge.driver=/usr/bin/msedgedriver +GECKO_DRIVER_PATH_PROPERTY=-Dwebdriver.gecko.driver=/usr/bin/geckodriver + +java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ + ${CHROME_DRIVER_PATH_PROPERTY} \ + ${EDGE_DRIVER_PATH_PROPERTY} \ + ${GECKO_DRIVER_PATH_PROPERTY} \ -jar /opt/selenium/selenium-server.jar \ --ext ${EXTRA_LIBS} standalone \ --bind-host ${SE_BIND_HOST} \ diff --git a/StandaloneDocker/start-selenium-grid-docker.sh b/StandaloneDocker/start-selenium-grid-docker.sh index 6c7dc2cde..c41ef865e 100755 --- a/StandaloneDocker/start-selenium-grid-docker.sh +++ b/StandaloneDocker/start-selenium-grid-docker.sh @@ -25,7 +25,7 @@ else echo "Tracing is disabled" fi -java ${JAVA_OPTS:-$SE_JAVA_OPTS} -Dwebdriver.http.factory=jdk-http-client \ +java ${JAVA_OPTS:-$SE_JAVA_OPTS} \ -jar /opt/selenium/selenium-server.jar \ --ext ${EXTRA_LIBS} standalone \ --relax-checks ${SE_RELAX_CHECKS} \ From 7d2e582a4acc4f97c6832859439dd3c65342c6ee Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Tue, 21 Nov 2023 21:13:44 +0000 Subject: [PATCH 02/10] Removing non existent path --- Distributor/start-selenium-grid-distributor.sh | 2 +- EventBus/start-selenium-grid-eventbus.sh | 2 +- Hub/start-selenium-grid-hub.sh | 2 +- NodeBase/start-selenium-node.sh | 2 +- NodeDocker/start-selenium-grid-docker.sh | 2 +- Router/start-selenium-grid-router.sh | 2 +- SessionQueue/start-selenium-grid-session-queue.sh | 2 +- Sessions/start-selenium-grid-sessions.sh | 2 +- Standalone/start-selenium-standalone.sh | 2 +- StandaloneDocker/start-selenium-grid-docker.sh | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Distributor/start-selenium-grid-distributor.sh b/Distributor/start-selenium-grid-distributor.sh index f816ed672..0f31df891 100755 --- a/Distributor/start-selenium-grid-distributor.sh +++ b/Distributor/start-selenium-grid-distributor.sh @@ -54,7 +54,7 @@ if [ ! -z "$SE_DISTRIBUTOR_PORT" ]; then PORT_CONFIG="--port ${SE_DISTRIBUTOR_PORT}" fi -EXTRA_LIBS="/opt/selenium/selenium-http-jdk-client.jar" +EXTRA_LIBS="" if [ ! -z "$SE_ENABLE_TRACING" ]; then EXTERNAL_JARS=$( Date: Tue, 21 Nov 2023 21:55:23 +0000 Subject: [PATCH 03/10] Fixing --ext error --- Distributor/start-selenium-grid-distributor.sh | 3 ++- EventBus/start-selenium-grid-eventbus.sh | 3 ++- Hub/start-selenium-grid-hub.sh | 3 ++- NodeBase/start-selenium-node.sh | 3 ++- NodeDocker/start-selenium-grid-docker.sh | 3 ++- Router/start-selenium-grid-router.sh | 3 ++- SessionQueue/start-selenium-grid-session-queue.sh | 3 ++- Sessions/start-selenium-grid-sessions.sh | 3 ++- Standalone/start-selenium-standalone.sh | 3 ++- StandaloneDocker/start-selenium-grid-docker.sh | 3 ++- 10 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Distributor/start-selenium-grid-distributor.sh b/Distributor/start-selenium-grid-distributor.sh index 0f31df891..81d498cea 100755 --- a/Distributor/start-selenium-grid-distributor.sh +++ b/Distributor/start-selenium-grid-distributor.sh @@ -58,6 +58,7 @@ EXTRA_LIBS="" if [ ! -z "$SE_ENABLE_TRACING" ]; then EXTERNAL_JARS=$( Date: Tue, 21 Nov 2023 22:46:44 +0000 Subject: [PATCH 04/10] Removing unneeded sudos --- NodeChrome/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/NodeChrome/Dockerfile b/NodeChrome/Dockerfile index 3f2e72845..5f5bafa45 100644 --- a/NodeChrome/Dockerfile +++ b/NodeChrome/Dockerfile @@ -49,10 +49,10 @@ RUN if [ ! -z "$CHROME_DRIVER_VERSION" ]; \ && echo "Using ChromeDriver version: "$CHROME_DRIVER_VERSION \ && wget --no-verbose -O /tmp/chromedriver_linux64.zip $CHROME_DRIVER_URL \ && rm -rf /opt/selenium/chromedriver \ - && sudo unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \ + && unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \ && rm /tmp/chromedriver_linux64.zip \ - && sudo mv /opt/selenium/chromedriver-linux64/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ - && sudo chmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ + && mv /opt/selenium/chromedriver-linux64/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ + && chmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ && sudo ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver #============================================ From 74abd27988fd4de60569823dbb629491d15e279c Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Tue, 21 Nov 2023 23:12:05 +0000 Subject: [PATCH 05/10] Setting browser binary location in stereotype --- NodeBase/generate_config | 5 ++++- Standalone/generate_config | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/NodeBase/generate_config b/NodeBase/generate_config index 9f7b02326..d2f9eb276 100755 --- a/NodeBase/generate_config +++ b/NodeBase/generate_config @@ -54,14 +54,17 @@ echo "max-sessions = ${SE_NODE_MAX_SESSIONS} SE_NODE_BROWSER_NAME=$(cat /opt/selenium/browser_name) if [[ "${SE_NODE_BROWSER_NAME}" == "chrome" ]]; then SE_NODE_BROWSER_VERSION=$(short_version $(google-chrome --version | awk '{print $3}')) + SE__BROWSER_BINARY_LOCATION="\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" elif [[ "${SE_NODE_BROWSER_NAME}" == "firefox" ]]; then SE_NODE_BROWSER_VERSION=$(short_version $(firefox --version | awk '{print $3}')) + SE__BROWSER_BINARY_LOCATION="\"moz:firefoxOptions\": {\"binary\": \"/usr/bin/firefox\"}" elif [[ "${SE_NODE_BROWSER_NAME}" == "MicrosoftEdge" ]]; then SE_NODE_BROWSER_VERSION=$(short_version $(microsoft-edge --version | awk '{print $3}')) + SE__BROWSER_BINARY_LOCATION="\"ms:edgeOptions\": {\"binary\": \"/usr/bin/microsoft-edge\"}" fi if [[ -z "$SE_NODE_STEREOTYPE" ]]; then -SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\"}" +SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\", ${SE__BROWSER_BINARY_LOCATION}}" else SE_NODE_STEREOTYPE="$SE_NODE_STEREOTYPE" fi diff --git a/Standalone/generate_config b/Standalone/generate_config index 7809d5256..7267ec420 100755 --- a/Standalone/generate_config +++ b/Standalone/generate_config @@ -35,14 +35,17 @@ echo "max-sessions = ${SE_NODE_MAX_SESSIONS} SE_NODE_BROWSER_NAME=$(cat /opt/selenium/browser_name) if [[ "${SE_NODE_BROWSER_NAME}" == "chrome" ]]; then SE_NODE_BROWSER_VERSION=$(short_version $(google-chrome --version | awk '{print $3}')) + SE__BROWSER_BINARY_LOCATION="\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" elif [[ "${SE_NODE_BROWSER_NAME}" == "firefox" ]]; then SE_NODE_BROWSER_VERSION=$(short_version $(firefox --version | awk '{print $3}')) + SE__BROWSER_BINARY_LOCATION="\"moz:firefoxOptions\": {\"binary\": \"/usr/bin/firefox\"}" elif [[ "${SE_NODE_BROWSER_NAME}" == "MicrosoftEdge" ]]; then SE_NODE_BROWSER_VERSION=$(short_version $(microsoft-edge --version | awk '{print $3}')) + SE__BROWSER_BINARY_LOCATION="\"ms:edgeOptions\": {\"binary\": \"/usr/bin/microsoft-edge\"}" fi if [[ -z "$SE_NODE_STEREOTYPE" ]]; then -SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\"}" +SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\", ${SE__BROWSER_BINARY_LOCATION}}" else SE_NODE_STEREOTYPE="$SE_NODE_STEREOTYPE" fi From 3094f2b629fcf7ad393a3be8b81623892009cd5c Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Tue, 21 Nov 2023 23:20:45 +0000 Subject: [PATCH 06/10] Moving browser version config to browser dockerfile --- NodeBase/generate_config | 4 +--- NodeChrome/Dockerfile | 3 ++- NodeEdge/Dockerfile | 3 ++- NodeFirefox/Dockerfile | 3 ++- Standalone/generate_config | 4 +--- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/NodeBase/generate_config b/NodeBase/generate_config index d2f9eb276..052170072 100755 --- a/NodeBase/generate_config +++ b/NodeBase/generate_config @@ -52,14 +52,12 @@ echo "max-sessions = ${SE_NODE_MAX_SESSIONS} " >> "$FILENAME" SE_NODE_BROWSER_NAME=$(cat /opt/selenium/browser_name) +SE_NODE_BROWSER_VERSION=$(short_version $(cat /opt/selenium/browser_version)) if [[ "${SE_NODE_BROWSER_NAME}" == "chrome" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(google-chrome --version | awk '{print $3}')) SE__BROWSER_BINARY_LOCATION="\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" elif [[ "${SE_NODE_BROWSER_NAME}" == "firefox" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(firefox --version | awk '{print $3}')) SE__BROWSER_BINARY_LOCATION="\"moz:firefoxOptions\": {\"binary\": \"/usr/bin/firefox\"}" elif [[ "${SE_NODE_BROWSER_NAME}" == "MicrosoftEdge" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(microsoft-edge --version | awk '{print $3}')) SE__BROWSER_BINARY_LOCATION="\"ms:edgeOptions\": {\"binary\": \"/usr/bin/microsoft-edge\"}" fi diff --git a/NodeChrome/Dockerfile b/NodeChrome/Dockerfile index 5f5bafa45..533f42e1a 100644 --- a/NodeChrome/Dockerfile +++ b/NodeChrome/Dockerfile @@ -56,6 +56,7 @@ RUN if [ ! -z "$CHROME_DRIVER_VERSION" ]; \ && sudo ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver #============================================ -# Dumping Browser name and version for config +# Dumping Browser information for config #============================================ RUN echo "chrome" > /opt/selenium/browser_name +RUN google-chrome --version | awk '{print $3}' > /opt/selenium/browser_version diff --git a/NodeEdge/Dockerfile b/NodeEdge/Dockerfile index e874040b7..f9f0761d7 100644 --- a/NodeEdge/Dockerfile +++ b/NodeEdge/Dockerfile @@ -49,6 +49,7 @@ RUN if [ -z "$EDGE_DRIVER_VERSION" ]; \ && sudo ln -fs /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION /usr/bin/msedgedriver #============================================ -# Dumping Browser name and version for config +# Dumping Browser information for config #============================================ RUN echo "MicrosoftEdge" > /opt/selenium/browser_name +RUN microsoft-edge --version | awk '{print $3}' > /opt/selenium/browser_version diff --git a/NodeFirefox/Dockerfile b/NodeFirefox/Dockerfile index 698fe6338..ccd54ce64 100644 --- a/NodeFirefox/Dockerfile +++ b/NodeFirefox/Dockerfile @@ -40,6 +40,7 @@ RUN GK_VERSION=$(if [ ${GECKODRIVER_VERSION:-latest} = "latest" ]; then echo "0. USER 1200 #============================================ -# Dumping Browser name and version for config +# Dumping Browser information for config #============================================ RUN echo "firefox" > /opt/selenium/browser_name +RUN firefox --version | awk '{print $3}' > /opt/selenium/browser_version diff --git a/Standalone/generate_config b/Standalone/generate_config index 7267ec420..47bf11459 100755 --- a/Standalone/generate_config +++ b/Standalone/generate_config @@ -33,14 +33,12 @@ echo "max-sessions = ${SE_NODE_MAX_SESSIONS} " >> "$FILENAME" SE_NODE_BROWSER_NAME=$(cat /opt/selenium/browser_name) +SE_NODE_BROWSER_VERSION=$(short_version $(cat /opt/selenium/browser_version)) if [[ "${SE_NODE_BROWSER_NAME}" == "chrome" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(google-chrome --version | awk '{print $3}')) SE__BROWSER_BINARY_LOCATION="\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" elif [[ "${SE_NODE_BROWSER_NAME}" == "firefox" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(firefox --version | awk '{print $3}')) SE__BROWSER_BINARY_LOCATION="\"moz:firefoxOptions\": {\"binary\": \"/usr/bin/firefox\"}" elif [[ "${SE_NODE_BROWSER_NAME}" == "MicrosoftEdge" ]]; then - SE_NODE_BROWSER_VERSION=$(short_version $(microsoft-edge --version | awk '{print $3}')) SE__BROWSER_BINARY_LOCATION="\"ms:edgeOptions\": {\"binary\": \"/usr/bin/microsoft-edge\"}" fi From 3fee6fce7186629ecf4767f367a95e031ece79f9 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Tue, 21 Nov 2023 23:27:27 +0000 Subject: [PATCH 07/10] Config placed on its own dockerfile --- NodeBase/generate_config | 8 +------- NodeChrome/Dockerfile | 1 + NodeEdge/Dockerfile | 1 + NodeFirefox/Dockerfile | 1 + Standalone/generate_config | 8 +------- 5 files changed, 5 insertions(+), 14 deletions(-) diff --git a/NodeBase/generate_config b/NodeBase/generate_config index 052170072..4e5276666 100755 --- a/NodeBase/generate_config +++ b/NodeBase/generate_config @@ -53,13 +53,7 @@ echo "max-sessions = ${SE_NODE_MAX_SESSIONS} SE_NODE_BROWSER_NAME=$(cat /opt/selenium/browser_name) SE_NODE_BROWSER_VERSION=$(short_version $(cat /opt/selenium/browser_version)) -if [[ "${SE_NODE_BROWSER_NAME}" == "chrome" ]]; then - SE__BROWSER_BINARY_LOCATION="\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" -elif [[ "${SE_NODE_BROWSER_NAME}" == "firefox" ]]; then - SE__BROWSER_BINARY_LOCATION="\"moz:firefoxOptions\": {\"binary\": \"/usr/bin/firefox\"}" -elif [[ "${SE_NODE_BROWSER_NAME}" == "MicrosoftEdge" ]]; then - SE__BROWSER_BINARY_LOCATION="\"ms:edgeOptions\": {\"binary\": \"/usr/bin/microsoft-edge\"}" -fi +SE__BROWSER_BINARY_LOCATION=$(cat /opt/selenium/browser_binary_location) if [[ -z "$SE_NODE_STEREOTYPE" ]]; then SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\", ${SE__BROWSER_BINARY_LOCATION}}" diff --git a/NodeChrome/Dockerfile b/NodeChrome/Dockerfile index 533f42e1a..63eb00bd3 100644 --- a/NodeChrome/Dockerfile +++ b/NodeChrome/Dockerfile @@ -60,3 +60,4 @@ RUN if [ ! -z "$CHROME_DRIVER_VERSION" ]; \ #============================================ RUN echo "chrome" > /opt/selenium/browser_name RUN google-chrome --version | awk '{print $3}' > /opt/selenium/browser_version +RUN echo "\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" > /opt/selenium/browser_binary_location diff --git a/NodeEdge/Dockerfile b/NodeEdge/Dockerfile index f9f0761d7..307244dec 100644 --- a/NodeEdge/Dockerfile +++ b/NodeEdge/Dockerfile @@ -53,3 +53,4 @@ RUN if [ -z "$EDGE_DRIVER_VERSION" ]; \ #============================================ RUN echo "MicrosoftEdge" > /opt/selenium/browser_name RUN microsoft-edge --version | awk '{print $3}' > /opt/selenium/browser_version +RUN echo "\"ms:edgeOptions\": {\"binary\": \"/usr/bin/microsoft-edge\"}" > /opt/selenium/browser_binary_location diff --git a/NodeFirefox/Dockerfile b/NodeFirefox/Dockerfile index ccd54ce64..a7ab1fe31 100644 --- a/NodeFirefox/Dockerfile +++ b/NodeFirefox/Dockerfile @@ -44,3 +44,4 @@ USER 1200 #============================================ RUN echo "firefox" > /opt/selenium/browser_name RUN firefox --version | awk '{print $3}' > /opt/selenium/browser_version +RUN echo "\"moz:firefoxOptions\": {\"binary\": \"/usr/bin/firefox\"}" > /opt/selenium/browser_binary_location diff --git a/Standalone/generate_config b/Standalone/generate_config index 47bf11459..fe4d74c4b 100755 --- a/Standalone/generate_config +++ b/Standalone/generate_config @@ -34,13 +34,7 @@ echo "max-sessions = ${SE_NODE_MAX_SESSIONS} SE_NODE_BROWSER_NAME=$(cat /opt/selenium/browser_name) SE_NODE_BROWSER_VERSION=$(short_version $(cat /opt/selenium/browser_version)) -if [[ "${SE_NODE_BROWSER_NAME}" == "chrome" ]]; then - SE__BROWSER_BINARY_LOCATION="\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" -elif [[ "${SE_NODE_BROWSER_NAME}" == "firefox" ]]; then - SE__BROWSER_BINARY_LOCATION="\"moz:firefoxOptions\": {\"binary\": \"/usr/bin/firefox\"}" -elif [[ "${SE_NODE_BROWSER_NAME}" == "MicrosoftEdge" ]]; then - SE__BROWSER_BINARY_LOCATION="\"ms:edgeOptions\": {\"binary\": \"/usr/bin/microsoft-edge\"}" -fi +SE__BROWSER_BINARY_LOCATION=$(cat /opt/selenium/browser_binary_location) if [[ -z "$SE_NODE_STEREOTYPE" ]]; then SE_NODE_STEREOTYPE="{\"browserName\": \"${SE_NODE_BROWSER_NAME}\", \"browserVersion\": \"${SE_NODE_BROWSER_VERSION}\", \"platformName\": \"Linux\", ${SE__BROWSER_BINARY_LOCATION}}" From 664432e2c7e2c2565fa17430b16a3f07edecb3ad Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Wed, 22 Nov 2023 10:58:53 +0000 Subject: [PATCH 08/10] Retrying tests --- .github/workflows/build-test.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 954ed42f9..4323c521b 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -41,7 +41,11 @@ jobs: - name: Build Docker images run: VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build - name: Test Docker images - run: USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test + uses: nick-invision/retry@v2.8.3 + with: + timeout_minutes: 20 + max_attempts: 3 + command: | + USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test env: USE_RANDOM_USER: ${{ matrix.use-random-user }} - From 3e9a71e0fde4571e1a1b9e604f8ef17a50464f34 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Wed, 22 Nov 2023 13:04:10 +0000 Subject: [PATCH 09/10] Not installing Firefox via apt --- NodeFirefox/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/NodeFirefox/Dockerfile b/NodeFirefox/Dockerfile index a7ab1fe31..48d83bdb8 100644 --- a/NodeFirefox/Dockerfile +++ b/NodeFirefox/Dockerfile @@ -12,11 +12,10 @@ USER root ARG FIREFOX_VERSION=latest RUN FIREFOX_DOWNLOAD_URL=$(if [ $FIREFOX_VERSION = "latest" ] || [ $FIREFOX_VERSION = "beta-latest" ] || [ $FIREFOX_VERSION = "nightly-latest" ] || [ $FIREFOX_VERSION = "devedition-latest" ] || [ $FIREFOX_VERSION = "esr-latest" ]; then echo "https://download.mozilla.org/?product=firefox-$FIREFOX_VERSION-ssl&os=linux64&lang=en-US"; else echo "https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.tar.bz2"; fi) \ && apt-get update -qqy \ - && apt-get -qqy --no-install-recommends install firefox libavcodec-extra \ + && apt-get -qqy --no-install-recommends install libavcodec-extra \ libgtk-3-dev libdbus-glib-1-dev \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/* \ && wget --no-verbose -O /tmp/firefox.tar.bz2 $FIREFOX_DOWNLOAD_URL \ - && apt-get -y purge firefox \ && rm -rf /opt/firefox \ && tar -C /opt -xjf /tmp/firefox.tar.bz2 \ && rm /tmp/firefox.tar.bz2 \ From f0140e6d747ce1827029bacca915c71990d2bd58 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Wed, 22 Nov 2023 15:21:51 +0000 Subject: [PATCH 10/10] Skipping Firefox tests with random user ID --- tests/test.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/test.py b/tests/test.py index 6efe34280..18c2b4a57 100644 --- a/tests/test.py +++ b/tests/test.py @@ -169,10 +169,13 @@ def standalone_browser_container_matches(container): use_random_user_id = USE_RANDOM_USER_ID == 'true' run_in_docker_compose = RUN_IN_DOCKER_COMPOSE == 'true' - random_user_id = random.randint(100000, 2147483647) + random_user_id = random.randint(2000, 65000) if use_random_user_id: logger.info("Running tests with a random user ID -> %s" % random_user_id) + if 'firefox' in image.lower(): + logger.info("Firefox has issues when running with a random user ID. Skipping until it gets fixed.") + exit(0) standalone = 'standalone' in image.lower()