0

Internet Explorer環境で実行したいキュウリテストスイートがあります。問題は、Linuxマシンを使用していることです。だから私はこれ、やや時代遅れのガイドに従うことを切望しました。

ローカルVMを使用してテストを実行しようとしています。そこで、スタンドアロンのセレンサーバーを起動しました。これにより、次のことがわかります。

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

これは、接続先としてここにローカルホストがあるのは少し奇妙に思えますが、同じ物理マシン上にある場合でも、問題は発生しないはずです。

次は、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 MIの助けを借りて、もう少し進んでください。

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

編集4:

最新の更新:

私の接続設定を変更しましたenv.rb

これにより、virtualboxに接続でき、IEブラウザが起動します。しかし!アプリケーションに接続できません。

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 に答える