【发布时间】:2017-12-21 16:37:54
【问题描述】:
我正在尝试通过在 Docker 上与我的测试套件一起运行 headless 来简化我的 Selenium 测试。我正在运行一个 Debian Jessie 映像,其中安装了从 PPA 安装的 google-chrome-stable 并安装了 chromedriver 2.33。我还附加了 /dev/shm 以最大化容器中的内存。我已经验证 chromedriver 在容器内运行良好。但是,当我运行一个简单的测试时,我得到了超时:
browser = Watir::Browser.new :chrome, headless: true
browser.goto 'google.com'
browser.text_field(title: 'Search').set 'Hello World!'
browser.button(type: 'submit').click
puts browser.title
browser.quit
/usr/local/lib/ruby/2.4.0/net/protocol.rb:176:in `rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)
from /usr/local/lib/ruby/2.4.0/net/protocol.rb:154:in `readuntil'
from /usr/local/lib/ruby/2.4.0/net/protocol.rb:164:in `readline'
from /usr/local/lib/ruby/2.4.0/net/http/response.rb:40:in
......
值得一提的是chromedriver安装在/chromedriver/chromedriver,然后添加到$PATH。 Watir/Selenium 是否需要知道 chromedriver 的完整路径? chromedriver或chrome是否需要在后台运行?
【问题讨论】:
-
如果您进一步查看该错误消息,您最终应该会找到对代码行的引用,这将有助于了解该行的内容
-
这里没有惊喜......代码已包含在内。
-
您已经包含了一些代码,是的,但是您没有指出代码的哪一行导致了错误。您包含的错误转储部分只有 4 行,它们都是核心 ruby 网络代码。这并没有告诉我们您的代码的哪一行在执行时导致了该错误。
标签: ruby google-chrome selenium docker watir