【发布时间】:2015-03-10 09:35:45
【问题描述】:
在运行使用 Watir-Webdriver(带有 Headless 和 Firefox)的 DelayedJobs 队列每小时几次从网络上获取一些数据时,我遇到了随机的 EOFError 和 ECONNREFUSED 错误。
这是一个相当简单的脚本,它可以访问站点、登录、在表单中输入数据并验证返回的数据。但是,错误似乎随机出现在脚本中的任何位置。您可以在下面看到示例。我认为还需要注意的是,一个单独的应用程序正在同一台机器上运行,也使用 Headless、Watir-Webdriver 和 Firefox。
由于随机性、备用应用程序以及谷歌搜索将我引导至 this issue with Selenium and ports 导致随机出现 EOF 问题,我倾向于认为这是在运行 Selenium 驱动的 Firefox(通过 Watir)时出现的问题同时也是根本原因。所以我的问题是:
- 究竟是什么阻止了 Selenium 驱动的 Firefox 打开两个可以很好运行的实例?我是否认为端口锁定或某些连接问题可能是罪魁祸首?
- 如果可能,我如何以编程方式避免这些重叠执行导致问题?
EOF错误示例
例如,EOFError: end of file reached 在尝试 .goto 时发生在这里:
/home/sam/.rvm/gems/ruby-2.0.0-p353/gems/watir-webdriver-0.7.0/lib/watir-webdriver/browser.rb:77:in `goto'
然后在.text:
/home/sam/.rvm/gems/ruby-2.0.0-p353/gems/watir-webdriver-0.7.0/lib/watir-webdriver/elements/element.rb:83:in `text'
ECONNREFUSED 示例
这里,Errno::ECONNREFUSED Connection refused - connect(2) 发生在 .set:
/home/sam/.rvm/gems/ruby-2.0.0-p353/gems/watir-webdriver-0.7.0/lib/watir-webdriver/user_editable.rb:11:in `set'"
然后在.click:
/home/sam/.rvm/gems/ruby-2.0.0-p353/gems/watir-webdriver-0.7.0/lib/watir-webdriver/elements/element.rb:119:in `click'
堆栈:
- Mozilla Firefox 31.5.0
- 无头 1.0.2
- watir-webdriver 0.7.0
- 红宝石 2.0.0p353
- rvm 1.25.25(稳定)
- CentOS 6.5 版(最终版)
【问题讨论】:
标签: firefox selenium webdriver watir-webdriver headless