【发布时间】:2021-07-23 10:11:21
【问题描述】:
我想在 DockerCompose 上将 selenium 与 Ruby 一起使用,并在另一台服务器上使用 chrome,但出现错误。
以下是各种代码和错误。
- DockerCompose.yml
version: "3"
services:
ruby:
build:
context: .
dockerfile: RubyDockerFile
ports:
- "3000:3000"
tty: true
chrome:
image: selenium/standalone-chrome:4.0.0-beta-3-20210426
container_name: chrome
volumes:
- /dev/shm:/dev/shm
ports:
- 4444:4444
- 5900:5900
- 7900:7900
- RubyDocker 中的 Ruby 代码
driver = Selenium::WebDriver.for :remote, url: 'http://chrome:4444', desired_capabilities: :chrome
- 错误
Net::ReadTimeout: Net::ReadTimeout with #<TCPSocket:(closed)>
/usr/local/bundle/gems/rack-mini-profiler-2.3.1/lib/patches/net_patches.rb:19:in `block in request_with_mini_profiler'
/usr/local/bundle/gems/rack-mini-profiler-2.3.1/lib/mini_profiler/profiling_methods.rb:46:in `step'
/usr/local/bundle/gems/rack-mini-profiler-2.3.1/lib/patches/net_patches.rb:18:in `request_with_mini_profiler'
/usr/local/bundle/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/http/default.rb:129:in `response_for'
/usr/local/bundle/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/http/default.rb:82:in `request'
/usr/local/bundle/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/http/common.rb:64:in `call'
/usr/local/bundle/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/bridge.rb:167:in `execute'
/usr/local/bundle/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/bridge.rb:102:in `create_session'
/usr/local/bundle/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/bridge.rb:56:in `handshake'
/usr/local/bundle/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/driver.rb:39:in `initialize'
/usr/local/bundle/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/driver.rb:58:in `new'
/usr/local/bundle/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/driver.rb:58:in `for'
/usr/local/bundle/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver.rb:88:in `for'
/hoge.rake:9:in `block (2 levels) in <main>'
【问题讨论】:
-
当页面加载超过 60 秒时会发生此错误。您的页面加载时间是否超过 60 秒?
-
感谢您的回复,我可以通过将超时设置为 180 秒而不是 120 秒来连接。非常感谢您的帮助。
-
是的,就是这样。
标签: ruby docker selenium selenium-webdriver docker-compose