0

Ruby on Rails プロジェクトで、環境に応じて Selenium ドライバーを取得することを目的とするこのメソッドを見つけました。(開発、テスト、または本番)

def driver
    @driver ||= begin
      if Rails.env.production?
        driver = Selenium::WebDriver.for :remote, url: 'http://localhost:4444/wd/hub'
      else
        driver = Selenium::WebDriver.for :firefox
      end
      driver.manage.timeouts.implicit_wait = 1
      driver
    end
  end

もちろん、私は公式ドキュメントを読みましたが、まだあまり明確ではないようです:

http://code.google.com/p/selenium/wiki/RemoteWebDriver - http://code.google.com/p/selenium/wiki/FirefoxDriver

これら 2 つの方法 (リモートと Firefox) の違いは何ですか?

特に、削除された方法では、なぜ指定されたホストを localhost に設定するのですか?

4

1 に答える 1

2

:remote は、:url で Selenium Server を実行しているリモート サーバーを使用することを意味します。この場合、Selenium サーバーは localhost で実行されています。ブラウザーが識別されないため、サーバーに設定されている既定のブラウザーが使用されます。

:firefox は、スクリプトが実行されている同じボックスで firefox を使用しようとすることを意味します。

これら 2 つの例は、rubybindings の紹介ページで確認できます。 http://code.google.com/p/selenium/wiki/RubyBindings

より一般的なドキュメントについては、これが良い場所かもしれません... http://selenium.googlecode.com/svn/trunk/docs/api/rb/index.html

なぜ誰かがこれになるのでしょうか?おそらく製品環境では、このコードを開発した人以外の誰かが、それが使用されているプラ​​ットフォーム (chrome、つまり ff など) に応じて Selenium サーバーを制御します (コードにアクセスできない製品担当者のように?)。私はここで推測しています。

于 2012-10-28T01:43:50.150 に答える