【问题标题】:Socket error from Watir-webdriver with Firefox 6来自 Firefox 6 的 Watir-webdriver 的套接字错误
【发布时间】:2011-08-30 21:09:00
【问题描述】:

我在 Windows XP 上首次在 Firefox 6 上运行我的 watir-webdriver 测试时收到此错误消息。

  1) Error:
testAttributeGadget010_workflow_shown(AttributeGadgetTest):
Errno::EADDRINUSE: Only one usage of each socket address (protocol/network address/port)   is normally permitted. - connect(2)
C:/Ruby187/lib/ruby/1.8/net/http.rb:560:in `initialize'
C:/Ruby187/lib/ruby/1.8/net/http.rb:560:in `open'
C:/Ruby187/lib/ruby/1.8/net/http.rb:560:in `connect'
C:/Ruby187/lib/ruby/1.8/timeout.rb:53:in `timeout'
C:/Ruby187/lib/ruby/1.8/timeout.rb:101:in `timeout'
C:/Ruby187/lib/ruby/1.8/net/http.rb:560:in `connect'
C:/Ruby187/lib/ruby/1.8/net/http.rb:553:in `do_start'
C:/Ruby187/lib/ruby/1.8/net/http.rb:542:in `start'
C:/Ruby187/lib/ruby/1.8/net/http.rb:1035:in `request'
C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.4.0/lib/selenium/webdriver/remote/http/default.rb:73:in `response_for'
C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.4.0/lib/selenium/webdriver/remote/http/default.rb:41:in `request'
C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.4.0/lib/selenium/webdriver/remote/http/common.rb:34:in `call'
C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.4.0/lib/selenium/webdriver/remote/bridge.rb:410:in `raw_execute'
C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.4.0/lib/selenium/webdriver/remote/bridge.rb:388:in `execute'
C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.4.0/lib/selenium/webdriver/remote/bridge.rb:356:in `find_element_by'
C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.4.0/lib/selenium/webdriver/common/search_context.rb:41:in `find_element'
C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.2/lib/watir-webdriver/locators/element_locator.rb:86:in `find_first_by_multiple'
C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.2/lib/watir-webdriver/locators/element_locator.rb:33:in `locate'
C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.2/lib/watir-webdriver/elements/element.rb:263:in `locate'
C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.2/lib/watir-webdriver/elements/element.rb:245:in `assert_exists'
C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.2/lib/watir-webdriver/elements/checkbox.rb:19:in `set'
./library/attribOptions.rb:22:in `attribOptions'
./library/attribOptions.rb:20:in `each_index'
./library/attribOptions.rb:20:in `attribOptions'
./007_wb_attribute.rb:365:in `testAttributeGadget010_workflow_shown'
./007_wb_attribute.rb:345:in `each'
./007_wb_attribute.rb:345:in `testAttributeGadget010_workflow_shown'

在我的 100 多个测试/单元测试用例中,似乎发生了 20 次。 有谁知道出了什么问题?

【问题讨论】:

  • 你可以尝试更新到 ruby​​ 1.9.2 看看它是否仍然存在?
  • 我在使用从 3.X 到 6.0 的各种 FF 版本时遇到了同样的问题。 Selenium Webdriver 2.5.0、Watir-Webdriver 0.3.2、Ruby 192-p290。在 XP(32 位)和 Windows 7(64 位)机器上。我昨天确实更新了 webdriver 以解决在 Firefox 6 上运行的问题,然后问题就直接出现了。
  • 微软的文章似乎已经解决了 XP 上的这两个问题!
  • @jarib 您应该将您的 MaxUserPort 答案作为正确答案,以便将其标记为已回答

标签: watir watir-webdriver


【解决方案1】:

几乎听起来你的临时端口用完了,这不应该只发生在一个 Firefox 实例上。但是谁知道Windows。尝试按照here 的说明增加 MaxUserPort 设置。

【讨论】:

  • 由于这个问题,我不得不从 2.5.0 降级到 2.4.0,而且我没有计算机上的管理员权限来更新注册表。
  • 这很奇怪。我认为 2.4.0 不会有什么不同。
  • 这个错误的发生恰逢我升级到2.5.0,因此我认为它是相关的,但事实并非如此。仍然发生在 2.4.0 上。很抱歉有任何混淆。
  • 我已经向 selenium-webdriver 添加了一个救援并重试,这对于那些无法调整注册表 (code.google.com/p/selenium/source/detail?r=13802)、但遇到 MaxUserPort 或退出 XP 的人来说应该有所帮助可能都是更好的解决方案。
猜你喜欢
  • 2013-04-11
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
  • 1970-01-01
相关资源
最近更新 更多