首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EOFError和Errno::ECONNREFUSED

EOFError和Errno::ECONNREFUSED
EN

Stack Overflow用户
提问于 2015-03-10 09:35:45
回答 2查看 347关注 0票数 1

在运行DelayedJobs队列时,使用Watir-Webdriver (使用Headless和Firefox)每小时从web获取一些数据,但我遇到了随机的EOFErrorECONNREFUSED错误。

这是一个相当简单的脚本,它可以访问站点、登录、在表单中输入数据并验证返回的数据。但是,在脚本中的任何一点上,错误似乎都是随机发生的。你可以看到下面的例子。我认为值得注意的是,在同一台机器上运行着一个单独的应用程序,它也使用Headless、Watir-Webdriver和Firefox。

因为另一款应用程序的随机性,以及谷歌搜索导致EOF问题的Selenium和端口存在此问题。,我倾向于认为这是一个问题,同时运行硒驱动的火狐(通过Watir)是根本原因。所以我的问题是:

  • 究竟是什么阻止了Selenium驱动的Firefox打开两个彼此都能玩得很好的实例呢?我认为端口锁定或某些连接问题可能是罪魁祸首,这是正确的吗?
  • 如果可能的话,我如何以编程的方式避免这些重叠的执行导致问题?

EOFError示例

例如,EOFError: end of file reached在尝试.goto时发生在这里

代码语言:javascript
复制
/home/sam/.rvm/gems/ruby-2.0.0-p353/gems/watir-webdriver-0.7.0/lib/watir-webdriver/browser.rb:77:in `goto'

然后在.text上:

代码语言:javascript
复制
/home/sam/.rvm/gems/ruby-2.0.0-p353/gems/watir-webdriver-0.7.0/lib/watir-webdriver/elements/element.rb:83:in `text'

生态实例

在这里,Errno::ECONNREFUSED Connection refused - connect(2)发生在.set

代码语言:javascript
复制
/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

代码语言:javascript
复制
/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-WebDriver0.7.0
  • ruby 2.0.0p 353
  • rvm 1.25.25 (稳定)
  • CentOS版本6.5 (最终)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-24 14:53:57

我成功地为每个应用程序提供了自己的Xvfb显示:

在服务器本身上:

代码语言:javascript
复制
$ sudo /usr/bin/Xvfb :98 -screen 0 1280x1024x24 -ac &
$ sudo /usr/bin/Xvfb :99 -screen 0 1280x1024x24 -ac &

应用程序1-在创建浏览器之前:

代码语言:javascript
复制
# ~/repo1/whatever.rb
# ...
h = headless(:display => '98')
# ...

应用程序2-在创建浏览器之前:

代码语言:javascript
复制
# ~/repo2/something.rb
# ...
h = headless(:display => '99')
# ...

@chuck-van-der-linden可能是正确的,但是,使用VM或类似的是一个更好的解决方案。如果我是从这个架构开始的话,这就是我的方法。

票数 0
EN

Stack Overflow用户

发布于 2015-03-12 02:57:25

如果任何一种测试在单独运行时都是完全可靠的,那么我认为您关于并行运行它们的假设可能是正确的。

我要么一个接一个地运行它们,要么设法找到其他更好地分离它们的方法。比如使用加油机,并在linux容器中运行测试?(如果您正在linux上运行)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28960213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档