0

我有一个黄瓜测试套件,我想在 Internet Explorer 环境中运行问题是我在一台 linux 机器上。所以我试着遵循这个有点过时的指南

我正在使用本地 VM 来尝试运行测试,并在那里启动了独立的 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

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

编辑:

意识到某些版本可能会有所帮助。从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 MI 的帮助下走得更远,但遇到了:

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

编辑4:

最近更新:

更改了我的连接设置env.rb

这让我可以连接到我的 virtualbox 并启动我的 IE 浏览器 YAY!但!它无法连接到应用程序。

4

1 回答 1

2

我预计“坏 URI”消息是由于缺少协议造成的 - 尝试在“127.0.0.1:4444/wd/hub”前面加上“http://”

编辑(响应您的更新):

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

例如http://some.other.ip:4444/wd/hub

于 2012-08-09T12:03:01.750 回答