1

そのため、Web アプリケーション用に Ruby で Selenium WebDriver を使用して一連のテストを作成しようとしていますが、Firefox の SSL 証明書の問題のためにアプリケーションに入ることができません。私たちのアプリケーションはローカル サーバーにデプロイされ、テスト/開発用に自己署名 SSL 証明書を使用します。ブラウザーを手動で使用しているだけの場合は、Firefox にセキュリティ例外を設定して永続的に保存するように指示できます。これは正常に機能します。これは、Selenium を使用する可能性ではありません。まず、永続的な例外を設定する前にテストが失敗します。第二に、例外を設定した瞬間、Selenium はそれを忘れて画面を再び表示します。

私はすでにカスタムプロファイルを作成しfirefox -pてそのプロファイルに例外を追加し、Selenium 経由でロードしようとしましたが、Selenium はその例外を尊重していないようです。また、証明書を無視または受け入れるようにさまざまなプロファイルパラメーターを設定しようとしましたが、Selenium はそれらのプロファイルパラメーターも無視しているようです。最後に、無効な証明書画面をスキップする拡張機能を Selenium に追加しましたが、それでも機能しません。これが私のコードです:

require 'rubygems'
require 'selenium-webdriver'

profile = Selenium::WebDriver::Firefox::Profile.from_name "Selenium"

profile.add_extension("./skip_cert_error-0.3.2-fx.xpi")
profile["browser.xul.error_pages"] = "false"
profile["browser.ssl_override_behavior"] = "1"

driver = Selenium::WebDriver.for(:firefox, :profile => profile)
4

2 に答える 2

0

私はそれを考え出した。秘訣は、証明書をサイトにダウンロードしてどこかに保存し、Firefoxの設定に戻って(Seleniumプロファイルをロードした状態で)、手動で証明書をアップロードしてから、[信頼の編集]で証明書を信頼することでした。

于 2012-07-05T23:54:24.290 に答える
0

この猫の皮を剥ぐ別の方法があります。私は Cucumber\Ruby\Selenium フレームワークを使用していますが、悪い証明書をスキップするための従来のプロファイル調整もうまくいきませんでした。私が最終的に行ったことは、Ruby コード内で FF プロファイルを作成/新規作成し、FF プロファイル ( assume_untrusted_certificate_issuer) に 1 つのメンバー変数を設定することでした。次に、プロファイルを browser\driver インスタンスに渡しました。見てみな:

profile = Selenium::WebDriver::Firefox::Profile.new   
profile.assume_untrusted_certificate_issuer=false
browser = Selenium::WebDriver.for :firefox, :profile => profile

これはすべて私のenv.rbファイルにあります。

ここで使用中のバージョン:

Windows7 Pro
Ruby 1.9.3,
Selenium Webdriver Gem 2.19, and
Firefox 14.0.1

かなり甘いですね。

于 2012-08-15T18:11:45.747 に答える