メモログ

塵が積もって山とならないメモのログ

watir-webdriver で開いたFirefoxのFirebugを起動状態にする

watir-webdriverからFirefoxを起動すると、webdriver用に調整された設定(profile)を使用します(厳密にはSelenium::Webdriverが用意した設定)。この調整された設定では、アドオンはwebdriverしか起動状態になりません。そのため、watir-webdriverで開いたFirefoxでFirebugを起動させたい場合は、用意された設定に予め追加しておく必要があります。具体的には下記のような感じ。Handle Security warining - Watir General | Google グループの情報を参考にしています。

1
2
3
4
5
6
7
8
require 'rubygems'
require 'watir-webdriver'

profile = Selenium::WebDriver::Firefox::Profile.new
profile.add_extension("./firebug.xpi",:firebug)
selenium = Selenium::WebDriver.for :firefox,:profile=>profile
watir = Watir::Browser.new selenium

単純にWatir::Browser.newとすると、Selenium::Webdriverで用意したデフォルトの設定しか利用できないため、Selenium::Webdriver用の独自のプロフィールファイルを作成して、それを読み込ませたSelenium::WebdriverをWatirで操作するオブジェクトとします。

add_extensionで追加するアドオンのファイルはxpiかzip形式である必要があります。FirebugのxpiファイルはFirebugのリリースの一覧から適切なバージョンをダウンロードします。add_extensionの詳細についてはprofile.rb - selenium - Project Hosting on Google Codeを参考に。

これでwebdriverで起動したFirefoxにFirebugのアドオンが追加されるようになります。通常のテストではFirebugを起動状態にする必要はありませんが、テストスクリプトを作成する場合には便利。FirebugでHTML構造をみつつ、Waitrで実際に操作しながら作成することができます。