Web驱动程序导致IE10 / Win7上的"SocketError: getaddrinfo: No such host is known"



我们有一个虚拟的Windows7映像,我们的CI在其中运行IE10上的功能测试。功能测试是用Ruby编写的,使用Cucumber+Watir Web驱动程序。

大多数时候,它工作得很好,但偶尔每个测试都会失败,出现以下异常:

EXCEPTION: SocketError:  getaddrinfo: No such host is known. 
       C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.34.0/lib/selenium/webdriver/common/platform.rb:169:in `getaddrinfo'
       C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.34.0/lib/selenium/webdriver/common/platform.rb:169:in `localhost'
       C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.34.0/lib/selenium/webdriver/remote/bridge.rb:48:in `block in initialize'
       C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.34.0/lib/selenium/webdriver/remote/bridge.rb:48:in `delete'
       C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.34.0/lib/selenium/webdriver/remote/bridge.rb:48:in `initialize'
       C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.34.0/lib/selenium/webdriver/common/driver.rb:35:in `new'
       C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.34.0/lib/selenium/webdriver/common/driver.rb:35:in `for'
       C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.34.0/lib/selenium/webdriver.rb:67:in `for'
       C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.4/lib/watir-webdriver/browser.rb:46:in `initialize'
       C:/jenkins/workspace/TEST_IE10/server/cucumber/support/step_support/browsers.rb:212:in `new'
       C:/jenkins/workspace/TEST_IE10/server/cucumber/support/step_support/browsers.rb:212:in `new_ie_browser'
       C:/jenkins/workspace/TEST_IE10/server/cucumber/support/step_support/browsers.rb:99:in `new_browser'
       C:/jenkins/workspace/TEST_IE10/server/cucumber/support/step_support/browsers.rb:132:in `browser'
       C:/jenkins/workspace/TEST_IE10/server/cucumber/client/features/support/clients/client_support.rb:54:in `new_client'
       C:/jenkins/workspace/TEST_IE10/server/cucumber/client/features/support/clients/client_support.rb:72:in `client'
       C:/jenkins/workspace/TEST_IE10/server/cucumber/client/features/support/clients/client_steps.rb:14:in `Before'

通常,在我重新启动虚拟机之前,没有进一步的测试运行,然后它会再次工作几天。

我检查了selenium网络驱动程序的代码,失败的行是:

info = Socket.getaddrinfo "localhost", 80, Socket::AF_INET, Socket::SOCK_STREAM

我们没有使用代理,通信应该只在内部网内进行。不过可以上网。hosts文件不包含localhost的任何条目。我们使用的是硒网络驱动程序2.34.0。我们的Win7/IE9虚拟机具有相同的配置,没有这样的问题。

hosts文件不包含localhost的任何条目。

这可能是你的问题。如果您不在本地解析localhost,则会使用默认域(例如localhost.example.com)发送DNS查询。您的DNS服务器可能会也可能不会正确回答该查询。

相关内容

最新更新