2011年10月12日水曜日

Seleniumを使ってみた その1


最近リリースされたSelenium 2.0を使ってみた。
http://seleniumhq.org/
公式には前バージョンからいろいろ変わった点があるが、そもそも前バージョンを使ったことがないので、この辺は読み飛ばし。

テストプロジェクトの設定で、2011年10月12日現在ではJava, C#, Python, Rubyしかサポートされていないらしい。
この中じゃJavaが一番分かるかなぁ、と思いきやMavenを入れる必要があるっぽい。
いや、なくても出来るんだろうが大変らしい。
業務でJava使わないからそこで時間取られるのもなぁ。
う~ん、サンプルコードしか打ったことないけどRubyにするか(無謀?!)。

まずはインストール。
公式からSelenium Serverをダウンロードしたけど、要らなかったかも…。
http://seleniumhq.org/download/

単に
# gem install selenium-webdriver
でよかったみたい。

rubyのサンプルコードも公式にあったので、そのままコピペしてgoogleTest.rbというファイルに保存し動かしてみる。

% ruby googleTest.rb
/usr/local/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/firefox/binary.rb:116:in `path': Could not find Firefox binary (os=linux). Make sure Firefox is installed or set the path manually with Selenium::WebDriver::Firefox::Binary.path= (Selenium::WebDriver::Error::WebDriverError)

失敗。
firefoxを使ってテストしているのに、firefoxが入ってなかった…。
そういえばfirefoxがなかった。yumでインストール後、再度実行。
% ruby googleTest.rb
/usr/local/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/firefox/launcher.rb:77:in `connect_until_stable': unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError)
        from /usr/local/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/firefox/launcher.rb:37:in `launch'
        from /usr/local/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/firefox/socket_lock.rb:20:in `locked'
        from /usr/local/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/firefox/launcher.rb:32:in `launch'
        from /usr/local/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/firefox/bridge.rb:19:in `initialize'
        from /usr/local/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/common/driver.rb:29:in `new'
        from /usr/local/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/common/driver.rb:29:in `for'
        from /usr/local/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver.rb:81:in `for'
        from googleTest.rb:4

またも失敗。
そうか、firefoxだからGUIが必要。CUIでやってたらそりゃ起動できないわ。

気を取り直してGUIで実行。
(TeraTerm + Xmingの環境構築はこちらを参考に。)
http://d.hatena.ne.jp/information-world/20090602/1243938029

firefoxが起動後、パパっと勝手に動いて結果出たら終了。
% ruby googleTest.rb
Page title is Cheese! - Google 検索
Page title is Cheese! - Google 検索

なかなかおもしろい!
続きます!

0 件のコメント: