使用黄瓜远程测试连接到VM的问题

时间:2012-08-09 09:24:54

标签: ruby-on-rails cucumber remote-server selenium-webdriver

我有一个黄瓜测试套件我想在Internet Explorer环境中运行问题是我在linux机器上。所以我很想跟着这个,有些过时,guide

我正在使用本地虚拟机尝试运行测试,在那里我启动了独立的selenium服务器,告诉我:

RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wb/hub

现在看起来有点奇怪,我在这里有localhost作为连接,但不管它是在同一台物理机器上,所以应该没有问题或者?

我的env.rb接下来我定义了以下内容:

Capybara.app_host = "http://hostname:4444"
Capybara.default_driver = :selenium
Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app,
    :browser => :remote,
    :url => "http://MYNETWORKIP:4444/wd/hub",
    :desired_capabilities => :internet_explorer)
end

正如指南所说。但是当我运行测试时,我收到以下错误:

bad URI(is not URI?): 127.0.0.1:4444/wd/hub (URI::InvalidURIError)

我怀疑它与我在代理服务器后面有关,因为我需要为Firefox(iceweasel)运行一些特殊设置。 这些设置是:

Capybara.register_driver :selenium do |app|
  profile                                       =   Selenium::WebDriver::Firefox::Profile.new
  profile["network.proxy.type"]                 =   2
  profile["network.proxy.autoconfig_url"]       =   "http config adress here"
  profile["network.proxy.no_proxies_on"]        =   "localhost, 127.0.0.1, #{%x[hostname].gsub("\n", "")}"
  profile["network.proxy.http"]                 =   "proxy http address here"
  profile["network.proxy.http_port"]            =   3128
  profile["network.proxy.ssl"]                  =   "ssl proxy http address here"
  profile["network.proxy.ssl_port"]             =   3128
  profile["network.proxy.share_proxy_settings"] =   true
  Capybara::Selenium::Driver.new(app, :profile => profile)
end

现在花了很多时间试图让它工作,所以我需要一些帮助 Thx提前

编辑:

意识到某些版本可能会有所帮助。 来自gemfile:

 cucumber (1.1.9)
 rails (2.3.11)
 selenium-webdriver (2.20.0)

编辑2:

将url更改为我的网络IP地址的进一步尝试给了我另一个错误:

both URI are relative (URI::BadURIError)

编辑3:

现在在Jon M的帮助下,我得到了更多但是遇到了:

 unexpected response, code=404, content-type="text/html"

编辑4:

最新更新:

更改了env.rb

中的连接设置

这让我连接到我的虚拟机并启动我的IE浏览器! 但!它无法连接到应用程序。

1 个答案:

答案 0 :(得分:2)

我希望'bad URI'消息是由于缺少协议 - 尝试使用'http://'前缀'127.0.0.1:4444/wd/hub'

编辑(响应您的更新):

刚发现地址... 127.0.0.1是指localhost,但如果Selenium服务器在另一台机器上运行,你肯定应该使用该机器的IP地址吗?

e.g。 http://some.other.ip:4444/wd/hub