在运行DelayedJobs队列时,使用Watir-Webdriver (使用Headless和Firefox)每小时从web获取一些数据,但我遇到了随机的EOFError和ECONNREFUSED错误。
这是一个相当简单的脚本,它可以访问站点、登录、在表单中输入数据并验证返回的数据。但是,在脚本中的任何一点上,错误似乎都是随机发生的。你可以看到下面的例子。我认为值得注意的是,在同一台机器上运行着一个单独的应用程序,它也使用Headless、Watir-Webdriver和Firefox。
因为另一款应用程序的随机性,以及谷歌搜索导致EOF问题的Selenium和端口存在此问题。,我倾向于认为这是一个问题,同时运行硒驱动的火狐(通过Watir)是根本原因。所以我的问题是:
EOFError示例
例如,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'生态实例
在这里,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'堆叠:
发布于 2015-03-24 14:53:57
我成功地为每个应用程序提供了自己的Xvfb显示:
在服务器本身上:
$ sudo /usr/bin/Xvfb :98 -screen 0 1280x1024x24 -ac &
$ sudo /usr/bin/Xvfb :99 -screen 0 1280x1024x24 -ac &应用程序1-在创建浏览器之前:
# ~/repo1/whatever.rb
# ...
h = headless(:display => '98')
# ...应用程序2-在创建浏览器之前:
# ~/repo2/something.rb
# ...
h = headless(:display => '99')
# ...@chuck-van-der-linden可能是正确的,但是,使用VM或类似的是一个更好的解决方案。如果我是从这个架构开始的话,这就是我的方法。
发布于 2015-03-12 02:57:25
如果任何一种测试在单独运行时都是完全可靠的,那么我认为您关于并行运行它们的假设可能是正确的。
我要么一个接一个地运行它们,要么设法找到其他更好地分离它们的方法。比如使用加油机,并在linux容器中运行测试?(如果您正在linux上运行)
https://stackoverflow.com/questions/28960213
复制相似问题