测试立即失败,并出现未知错误:通过systemd运行Selenium网格时,DevToolsActivePort文件不存在

时间:2019-10-01 16:41:38

标签: selenium selenium-webdriver centos systemd selenium-grid

我一直在尝试将启动Selenium网格服务的方式从.rclocal中的shell脚本更改为systemd服务,但无法正常工作。脚本是这样的:


#!/bin/bash
java -jar /opt/selenium-server-standalone.jar -role hub -hubConfig hubconfig.json
xvfb-run --server-args="-screen 0 2048x1536x24" java -jar /opt/selenium-server-standalone.jar -role 
node -nodeConfig nodeconfig.json

我创建了两个不同的服务,如下所示:

(Stackoverflow不允许我输入服务的内容,因为它表示格式不正确)

服务正常启动:

selenium-hub


● selenium-hub.service - Selenium service
   Loaded: loaded (/etc/systemd/system/selenium-hub.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-10-01 15:53:10 UTC; 2min 41s ago
 Main PID: 23803 (java)
   CGroup: /system.slice/selenium-hub.service
           └─23803 /bin/java -jar /opt/selenium-server-standalone.jar -role hub -hubConfig /home/selenium/hubconfig.json

Oct 01 15:53:12 vm java[23803]: 15:53:12.163 INFO - Selenium build info: version: '3.9.1', revision: '63f7b50'
Oct 01 15:53:12 vm java[23803]: 15:53:12.164 INFO - Launching Selenium Grid hub on port 4444
Oct 01 15:53:13 vm java[23803]: 2019-10-01 15:53:13.384:INFO::main: Logging initialized @2790ms to org.seleniumhq.jetty9.util.log.StdErrLog
Oct 01 15:53:13 vm java[23803]: 2019-10-01 15:53:13.492:INFO:osjs.Server:main: jetty-9.4.7.v20170914, build timestamp: 2017-11-21T21:27:37Z, git hash: 82b8fb23f757335bb3329d540ce37a2a2615f0a8
Oct 01 15:53:13 vm java[23803]: 2019-10-01 15:53:13.524:INFO:osjs.session:main: DefaultSessionIdManager workerName=node0
Oct 01 15:53:13 vm java[23803]: 2019-10-01 15:53:13.524:INFO:osjs.session:main: No SessionScavenger set, using defaults
Oct 01 15:53:13 vm java[23803]: 2019-10-01 15:53:13.529:INFO:osjs.session:main: Scavenging every 660000ms
Oct 01 15:53:13 vm java[23803]: 2019-10-01 15:53:13.538:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@60704c{/,null,AVAILABLE}
Oct 01 15:53:13 vm java[23803]: 2019-10-01 15:53:13.562:INFO:osjs.AbstractConnector:main: Started ServerConnector@1fe20588{HTTP/1.1,[http/1.1]}{0.0.0.0:4444}
Oct 01 15:53:13 vm java[23803]: 2019-10-01 15:53:13.562:INFO:osjs.Server:main: Started @2968ms
Oct 01 15:53:13 vm java[23803]: 15:53:13.562 INFO - Selenium Grid hub is up and running
Oct 01 15:53:13 vm java[23803]: 15:53:13.562 INFO - Nodes should register to http://1.2.3.4:4444/grid/register/
Oct 01 15:53:13 vm java[23803]: 15:53:13.562 INFO - Clients should connect to http://1.2.3.4:4444/wd/hub
Oct 01 15:53:14 vm java[23803]: 15:53:14.797 INFO - Registered a node http://1.2.3.4:5555

selenium-node:


● selenium-node.service - Selenium nodes
   Loaded: loaded (/etc/systemd/system/selenium-node.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-10-01 15:53:10 UTC; 6min ago
 Main PID: 23813 (xvfb-run)
   CGroup: /system.slice/selenium-node.service
           ├─23813 /bin/sh /bin/xvfb-run --server-args="-screen 0 2048x1536x24" java -jar /opt/selenium-server-standalone.jar -role node -nodeConfig /home/selenium/nodeconfig.json
           ├─23856 java -jar /opt/selenium-server-standalone.jar -role node -nodeConfig /home/selenium/nodeconfig.json
           ├─24326 /usr/local/bin/chromedriver --port=1713
           ├─24327 /usr/local/bin/chromedriver --port=26741
           ├─24328 /usr/local/bin/chromedriver --port=20065
           ├─24329 /usr/local/bin/chromedriver --port=6459
           ├─24331 /usr/local/bin/chromedriver --port=15872
           ├─24332 /usr/local/bin/chromedriver --port=29475
           ├─24333 /usr/local/bin/chromedriver --port=30216
           ├─24334 /usr/local/bin/chromedriver --port=6955
           ├─24558 /usr/local/bin/chromedriver --port=2425
           ├─24559 /usr/local/bin/chromedriver --port=19304
           ├─24560 /usr/local/bin/chromedriver --port=12150
           ├─24561 /usr/local/bin/chromedriver --port=26147
           ├─24562 /usr/local/bin/chromedriver --port=16545
           ├─24570 /usr/local/bin/chromedriver --port=12780
           ├─24602 /usr/local/bin/chromedriver --port=10959
           ├─24603 /usr/local/bin/chromedriver --port=8970
           ├─24753 /usr/local/bin/chromedriver --port=13438
           ├─24754 /usr/local/bin/chromedriver --port=15725
           └─24772 /usr/local/bin/chromedriver --port=28829

Oct 01 15:55:19 vm xvfb-run[23813]: Starting ChromeDriver 77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442}) on port 15725
Oct 01 15:55:19 vm xvfb-run[23813]: Only local connections are allowed.
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.112 INFO - /session: Executing POST on /session (handler: BeginSession)
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.113 INFO - Capabilities are: Capabilities {browserName: chrome, goog:chromeOptions: {args: [enable-automation, disable-infobars, disable-notifications, no-sandbox, --disable-dev-shm
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.114 INFO - Capabilities {browserName: chrome, goog:chromeOptions: {args: [enable-automation, disable-infobars, disable-notifications, no-sandbox, --disable-dev-shm-usage, window-siz
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.115 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@53702c02
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.115 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@4ae12041
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.116 INFO - /session: Executing POST on /session (handler: BeginSession)
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.117 INFO - Capabilities are: Capabilities {browserName: chrome, goog:chromeOptions: {args: [enable-automation, disable-infobars, disable-notifications, no-sandbox, --disable-dev-shm
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.118 INFO - Capabilities {browserName: chrome, goog:chromeOptions: {args: [enable-automation, disable-infobars, disable-notifications, no-sandbox, --disable-dev-shm-usage, window-siz
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.118 INFO - /session: Executing POST on /session (handler: BeginSession)
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.120 INFO - Capabilities are: Capabilities {browserName: chrome, goog:chromeOptions: {args: [enable-automation, disable-infobars, disable-notifications, no-sandbox, --disable-dev-shm
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.120 INFO - Capabilities {browserName: chrome, goog:chromeOptions: {args: [enable-automation, disable-infobars, disable-notifications, no-sandbox, --disable-dev-shm-usage, window-siz
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.121 INFO - /session: Executing POST on /session (handler: BeginSession)
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.123 INFO - Capabilities are: Capabilities {browserName: chrome, goog:chromeOptions: {args: [enable-automation, disable-infobars, disable-notifications, no-sandbox, --disable-dev-shm
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.123 INFO - Capabilities {browserName: chrome, goog:chromeOptions: {args: [enable-automation, disable-infobars, disable-notifications, no-sandbox, --disable-dev-shm-usage, window-siz
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.124 INFO - /session: Executing POST on /session (handler: BeginSession)
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.139 INFO - Capabilities are: Capabilities {browserName: chrome, goog:chromeOptions: {args: [enable-automation, disable-infobars, disable-notifications, no-sandbox, --disable-dev-shm
Oct 01 15:55:19 vm xvfb-run[23813]: 15:55:19.139 INFO - Capabilities {browserName: chrome, goog:chromeOptions: {args: [enable-automation, disable-infobars, disable-notifications, no-sandbox, --disable-dev-shm-usage, window-siz
Oct 01 15:55:19 vm xvfb-run[23813]: Starting ChromeDriver 77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442}) on port 26147
Oct 01 15:55:19 vm xvfb-run[23813]: Only local connections are allowed.
Oct 01 15:55:19 vm xvfb-run[23813]: Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.

但是所有测试均失败,并出现相同的错误:

OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: '3.9.1', revision: '63f7b50', time: '2018-02-07T22:42:28.403Z'

DevToolsActivePort的问题源于/ dev / shm太小,有时会导致浏览器崩溃(https://stackoverflow.com/a/50642913/5364231https://bugs.chromium.org/p/chromium/issues/detail?id=736452#c64),因此我已经将--disable-dev-shm-usage添加到了功能。

我认为问题出在服务selenium-hub中,无法与selenium-node通信。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

此错误消息...

OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: '3.9.1', revision: '63f7b50', time: '2018-02-07T22:42:28.403Z'

...表示 ChromeDriver 无法启动/产生新的 WebBrowser ,即 Chrome浏览器会话。


您的主要问题是所使用的二进制版本之间的不兼容性

  • 您正在使用最新的 chromedriver = 77.0
  • 大概您正在使用 chrome = 77.0
  • 您的 Selenium Client 版本是 2018-02-07T22:42:28.403Z 3.9.1 ,几乎是 1.5 岁。

因此 Selenium Client v3.9.1 ChromeDriver v77.0 Chrome浏览器v77.0 <之间显然存在不匹配/ p>


解决方案

确保:

  • JDK 已升级到当前级别JDK 8u221
  • 已升级到当前级别Version 3.141.59
  • ChromeDriver 已更新为当前的ChromeDriver v77.0级别。
  • Chrome 已更新为当前的 Chrome版本77.0 级别。 (根据ChromeDriver v77.0 release notes
  • 通过您的 IDE
  • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
  • 如果您的基本 Web客户端版本太旧,则将其卸载并安装最新版本的 Web客户端 GA。
  • 进行系统重启
  • 非root用户用户的身份执行@Test