無効な証明書があると Firefox が判断する Web ページにアクセスする必要がある watir-webdriver (Firefox 4.0 を使用) を実行するスクリプトがあります。
問題は、証明書を受け入れた後、Firefox が受け入れなかった場合と同じページに戻ってしまうことです。
これは、Firefox が watir-webdriver から起動された場合にのみ発生します。手動で起動すると、セキュリティ例外が適切に受け入れられます。
無効な証明書があると Firefox が判断する Web ページにアクセスする必要がある watir-webdriver (Firefox 4.0 を使用) を実行するスクリプトがあります。
問題は、証明書を受け入れた後、Firefox が受け入れなかった場合と同じページに戻ってしまうことです。
これは、Firefox が watir-webdriver から起動された場合にのみ発生します。手動で起動すると、セキュリティ例外が適切に受け入れられます。
Firefox ドライバーはインスタンスごとに新しい匿名プロファイルを作成するため、既定のプロファイルでは機能するが、WebDriver では機能しないことは驚くべきことではありません。
通常、WebDriver は証明書の問題をうまく処理しますが、特殊なケースがあります。提供元のホスト名と一致しない有効な証明書を提供している場合です (テスト環境での実稼働証明書など)。その場合は、Firefox プロファイルにフラグを設定する必要があります。
profile = Selenium::WebDriver::Firefox::Profile.new
profile.assume_untrusted_certificate_issuer = false
browser = Watir::Browser.new(:firefox, :profile => profile)
それでも問題が解決しない場合は、デフォルトのプロファイルをモデルとして使用することもできます:
browser = Watir::Browser.new(:firefox, :profile => "default")
[ツール] -> [オプション] -> [詳細設定] -> [暗号化] タブに移動してみてください。次に、[検証] ボタンをクリックし、[オンライン証明書ステータス プロトコル (OCSP) を使用する] のチェックを外します ...
これは、Selenium の Ruby バインディングを使用してプログラムで無効にすることができます。
require 'selenium-webdriver'
require 'watir-webdriver'
profile = Selenium::WebDriver::Firefox::Profile.new
profile["security.OCSP.enabled"] = 0
driver = Selenium::WebDriver.for :firefox, :profile => profile
browser = Watir::Browser.new(driver)