为什么并行测试失败,并显示“ Selenium :: WebDriver :: Error :: WebDriverError无效的会话ID”?

问题描述 投票:1回答:1

我正在CircleCI上测试Rails应用。我在单独的容器中运行并行测试。

#.circleci/config.yml
...
jobs:
  build:
    parallelism: 2
    ...

一个容器始终失败:

Selenium::WebDriver::Error::WebDriverError:
              invalid session id

如果我更改配置并且仅运行1个容器,则所有测试都通过。

我想我为并行测试配置了一些错误的东西。谁能帮助我了解Selenium为什么会期待一个不存在的会话,以及我应该在哪里调试它?

ruby-on-rails selenium-webdriver circleci
1个回答
0
投票

这是在docker env中运行的selenium中的常见问题。解决该问题的一种方法是使用disable-dev-shm-usage选项并更改Capybara服务器端口。喜欢它:

# ...

Capybara.server_port = 9887 + ENV["CIRCLE_NODE_INDEX"].to_i # In order to create a new server port to each runner

Capybara.register_driver :headless_chrome do |app|
  # ...
  browser_options.args << '--disable-dev-shm-usage'
  # ...
end

来源:https://github.com/grosser/parallel_tests/issues/658#issuecomment-429395002

© www.soinside.com 2019 - 2024. All rights reserved.