watir-webdriver: 証明書エラーを回避する
SSL証明書が(本番の環境の証明書を流用していてドメインが合わないとか有効期限切れとかで)エラーとなるような環境でテストする場合、watir-webdriverをそのまま実行しようとしても証明書エラーとなりその先に進むことができません。
⛰ 塵が積もって山とならないメモのログ 👄
SSL証明書が(本番の環境の証明書を流用していてドメインが合わないとか有効期限切れとかで)エラーとなるような環境でテストする場合、watir-webdriverをそのまま実行しようとしても証明書エラーとなりその先に進むことができません。
ひさしぶりにブログのデザインを変更してみました。今回はHTML5をベースに。IE8以下だとHTML5の新しい要素を認識しないとかいう話なので、html5shivというのを追加しています(Windowsが手元にないので実際の表示は確認していませんが)。HTML5の作成には「HTML5&API入門」を参考にしました。しかし、これで正しいのかいまいち自信なし。h1とか、こんなに入れていいんですかねえ(validatorでは大丈夫そうですけど)。
watir-webdriver で開いたFirefoxのFirebugを起動状態にすると同じ要領で、FireMobileSimulatorを起動した状態でwatir-webdriverを実行することができます。ただFirebugに比べると若干設定の追加が必要です。具体的には下記のような感じ。
watir-webdriverからFirefoxを起動すると、webdriver用に調整された設定(profile)を使用します(厳密にはSelenium::Webdriverが用意した設定)。この調整された設定では、アドオンはwebdriverしか起動状態になりません。そのため、watir-webdriverで開いたFirefoxでFirebugを起動させたい場合は、用意された設定に予め追加しておく必要があります。具体的には下記のような感じ。Handle Security warining - Watir General | Google グループの情報を参考にしています。
watirとwatir-webdriver違いはComparison with watir 1.x - watir-webdriver - GitHubにリストアップされていますが、ここにリストアップされていないもので大きな点というと、autoitを扱えなくなったという点があります。autoitはwindowsでのみ動作しない機能ですし、マルチプラットフォーム化しているwebdriverでは当たり前と言えば当たり前ですが。
一つ前の記事でwatirはselenium-webdriverのラッパー的な感じであると申しました。なので、watir-webdriverでもselenium-webdriverで実装されているメソッドを直接使用することも可能です。
去年の今頃、watir 2.0 として始まったwatir-webdriverですが、現在 0.1.7。着々と進んでいます。その当時はseleniumとwatirの関係性がよくわかってませんでしたが、watirはselenium-webdriverのラッパー的な感じみたいです。watir-webdriverの内部では、Selenium::Webdriver.for でseleniumのdriverを呼び出しています。
watir 1.6.5ではclick_no_waitが動作しないという話をして、その後watir 1.6.6では修正されているという話をしました。1.6.6では性能も改善されていて、click_no_waitのメソッドを実行すると、10〜20秒くらい止まってしまうということもなくなりました。
watirの1.6.7がリリースされたみたいですね。
今回のリリースはwaitメソッドの追加が主のようです。Watir::Elementに#when_present, #wait_until_present, #wait_while_present, #present?という4つのメソッドを追加して、Watir::IE and Watir::Firefoxに#wait_until, #wait_whileという2つのメソッドが追加されています。