Docker WebDriverError:会话id无效

Docker WebDriverError:会话id无效,docker,automation,protractor,cucumber,Docker,Automation,Protractor,Cucumber,我正在尝试将自动化测试容器化,以便在docker环境中运行。当构建在自动化代码上运行时,它会创建一个docker映像并在DTR中更新。我有一个单独的jenkins管道,它在docker映像中运行自动化命令,并将结果上传到工作区。所有这些设置在非docker环境中(即在本地mac终端上)都可以正常工作,但在docker环境中同样的测试失败。我正试图找出一个解决办法,但似乎不起作用 在docker环境中运行量角器测试时,我得到以下错误 测试后/黄瓜/步骤定义/挂钩。ts:31 WebDriverEr

我正在尝试将自动化测试容器化,以便在docker环境中运行。当构建在自动化代码上运行时,它会创建一个docker映像并在DTR中更新。我有一个单独的jenkins管道,它在docker映像中运行自动化命令,并将结果上传到工作区。所有这些设置在非docker环境中(即在本地mac终端上)都可以正常工作,但在docker环境中同样的测试失败。我正试图找出一个解决办法,但似乎不起作用

在docker环境中运行量角器测试时,我得到以下错误

测试后/黄瓜/步骤定义/挂钩。ts:31 WebDriverError:会话id无效 (驱动程序信息:chromedriver=73.0.3683.68(47787ec04b6e38e22703e856e101e840b65afe72),平台=Linux 4.9.125-linuxkit x8664)

我从circleci/node()构建了我的docker映像,该映像安装了必需的库(node、npm、warn、chrome和chrome驱动程序)

在运行测试之前,我确保安装了量角器、cucumber和webdriver模块

即使这样,我也在尝试安装chrome和chrome驱动程序,同时使用apt get软件包管理器构建映像

docker环境位于Debian GNU/Linux 9上\n\l chrome驱动程序版本是 73.0.3683.75-1~deb9u1 谷歌浏览器的版本是73.0.3683.103 我在无头跑步

Making sure the webdriver manager is updated before starting it
Web driver version 13.0

Running below:
webdriver-manager update --ignore_ssl --versions.chrome 73.0.3683.75-1~deb9u1
webdriver-manager start --detach
protractor test/cucumber/config/cucumberConfig.ts
我希望所有的测试都能在docker环境中运行,就像在mac终端中运行一样,但会出现以下错误:

  • 并注销应用程序#test/cucumber/stepDefinitions/common step def.ts:64 ✖ 测试后/黄瓜/步骤定义/挂钩。ts:31 WebDriverError:会话id无效 (驱动程序信息:chromedriver=73.0.3683.68(47787ec04b6e38e22703e856e101e840b65afe72),平台=Linux 4.9.125-linuxkit x8664) 在Object.checkLegacyResponse(/node_modules/selenium webdriver/lib/error.js:546:15) 在parseHttpResponse(/node_modules/selenium webdriver/lib/http.js:509:13) 在doSend.then.response(/node_modules/selenium webdriver/lib/http.js:441:30) 在 在进程中。_tick回调(内部/process/next_tick.js:189:7) From:Task:WebDriver.takeScreenshot() 在EnableWebDriverProxy.schedule(/node\u modules/selenium webdriver/lib/webdriver.js:807:17)上 在EnableWebDriverProxy.takeScreenshot(/node\u modules/selenium webdriver/lib/webdriver.js:1085:17) 运行时(/node_modules/dragrator/build/browser.js:59:33) at GragrantorBrowser.to.(匿名函数)[截图](/node_modules/grantor/build/browser.js:67:16) 在世界上。(/test/cucumber/step定义/hooks.ts:36:17)

有什么想法吗?

可能需要检查Chrome版本是否与Docker中使用的操作系统版本兼容。 从日志来看,页面似乎没有加载,或者加载时崩溃。加载页面需要更多内存,或者chromes扩展可能已启用

尝试将这些选项添加到配置中

chromeOptions: {
                args: [
                    'incognito',
                    'disable-extensions',
                    'disable-infobars',
                ]
            }

我最近遇到了同样的问题。由于某种原因,浏览器实例似乎无法启动。在我的例子中,在chrome选项中添加
--禁用dev shm用法
解决了这个问题

ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-dev-shm-usage");
ChromeDriver driver = new ChromeDriver(options);
这有助于:

默认情况下,Docker运行具有/dev/shm共享内存空间64MB的容器。这对于Chrome来说通常太小,在呈现大页面时会导致Chrome崩溃。要修复此问题,请使用docker run--shm size=1gb运行容器,以增加/dev/shm的大小。自从Chrome 65之后,这就不再需要了。而是使用--disable dev shm usage标志启动浏览器:

~


根据这一点,另一个想法是在运行容器时尝试使用
--shm size=1gb
,如果您真的想使用/dev/shm。

WebDriverError:unknown error:tab crash中的页面崩溃导致会话被删除(会话信息:headless chrome=73.0.3683.103)(驱动程序信息:chromedriver=73.0.3683.68)(47787ec04b6e38e22703e856e101e840b65afe72),平台=Linux 4.9.125-linuxkit x86_64)不,它不起作用。下面是我的浏览器和chrome驱动程序版本详细信息。测试在docker容器中运行不,它不起作用。下面是我的浏览器和chrome驱动程序版本详细信息。测试在docker容器WebDriverError中运行:会话id无效(驱动程序信息:chromedriver=73.0.3683.68(47787ec04b6e38e22703e856e101e840b65afe72),平台=Linux 4.4.155-94.50-默认x86_64