1
我们有一个虚拟的Windows 7映像,我们的CI在IE10上运行我们的功能测试。功能测试使用Cucumber + Watir-Webdriver以Ruby编写。Webdriver在IE10/Win7上导致“SocketError:getaddrinfo:没有这样的主机”
大多数的正常工作时间,但现在每然后每个测试开始与下面的异常失败:
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'
通常没有进一步的测试运行将工作,直到我重新启动虚拟机,然后再工作几天。
我检查硒的webdriver的代码和发生故障的线路是:
info = Socket.getaddrinfo "localhost", 80, Socket::AF_INET, Socket::SOCK_STREAM
我们在使用无代理和通信应该只在出内网发生。互联网接入虽然可用。 hosts文件不包含localhost的任何条目。我们使用的是selenium-webdriver 2.34.0。我们使用相同配置的Win7/IE9虚拟机没有这样的问题。
Windows上的默认主机文件包含显式注释:“本地主机名称解析在DNS本身内处理”,并且定义“127.0.0.1 localhost”的行被注释。 – Sampo