3

Ruby で selenium-webdriver を使用して自動テストを作成しています。

Chrome と chromedriver バイナリは非常にうまく機能しますが、ブラウザーの構成に関連する Firefox に問題があり、テストが失敗しますが、Chrome では成功します。

Firefox でテストを実行すると、次のメッセージが表示されることがあります。

このページは暗号化されていますが、入力した情報は暗号化されていない接続で送信されるため、第三者に簡単に読み取られる可能性があります

そして、それは実行を中断します。最近の Firefox バージョン (10+) でこの警告を無効にする方法、または Selenium でこの動作を処理する方法はありますか?

4

3 に答える 3

2

これに対する解決策を見つける過程で、Capybara (v1.1.2) にバグが見つかった可能性があると思います。

clickカピバラから (例外をキャプチャできません) を使用する代わりに、次のアプローチを使用してこの問題を回避することができclick、selenium-webdriver のメソッドを使用し始めました。

Firefoxがこのアラートボックスをトリガーすると、メッセージを含む文字列が表示されるようです

このページは暗号化されていますが、入力した情報は暗号化されていない接続を介して送信されるため、第三者によって簡単に読み取られる可能性があります

の結果として返されobject.native.clickます。それ以外の場合は文字列

わかった

返されます。

# Define the click method in ruby and call it when you're executing a 'click'

  # Public: Click the object.
  #
  # object - Capybara::Node::Element object to click.
  def click object
    return_string = object.native.click
    check_firefox_alertbox if return_string == "ok"
  end

  def check_firefox_alertbox
    if @current_browser == :firefox 
     @session.driver.browser.switch_to.alert.accept
    end
  rescue Exception => e
    puts e
  end
于 2012-07-30T13:07:39.720 に答える
1

これがあなたにできることです。Firefoxabout:configを入力します。いくつかのオプションが表示されます(警告メッセージを通過すると)。

security.warn_leaving_secureを探す必要があります。およびsecurity.warn_leaving_insecure。それらの両方を偽にしてください。そして、あなたは行ってもいいでしょう。

注意:これは、変更を加えたFFインスタンスでのみ機能するため、このインスタンスを起動するにはFirefoxプロファイルを使用する必要があります。

お役に立てれば。

于 2012-07-27T14:24:29.800 に答える
0

実際にはこれはコメントのつもりでしたが、コメントできるようにするには 50 を超える必要があります。Firefox はどうなりますか? 続行するにはクリックが必要ですか? その場合は、BEGIN 句と RESCUE 句の間に機密性の高いコード (壊れている場所) を挿入した後で、Ruby エラーをキャプチャすることで即興で対応できます..このようなもの..

  BEGIN
   .
   .
  Code that is giving you a headache
   .
   .
  RESCUE
   .
  Capture the exception and give Ruby a chance to continue the script normally.
   .
   .
  END

または、上記の解決策が気に入らない場合は、Firefox に移動して、アドレス ボックスに about:configと入力することもできます。「 security.warn 」でフィルタリングし、そこに表示されるすべてのブール変数を false に設定します。グッドリダンス、指が交差しました;)

于 2012-07-27T08:45:08.530 に答える