次世代Selenium IDEと唱われている、Selenium Builderを試したメモ。

次世代Selenium IDE

次世代という意味は、Selenium2 、つまりWebdriverをサポートしているということ。

Selenium IDEは Selenium1(or RemoteConsole RC)をサポートしている。

Selenium Builderの準備

Selenium Builderは forefoxのブラグイン。なので、まずはfirefoxをインストール。

次に、以下からプラグインをインストール。

firefoxを再起動後、Ctrl+Alt+B or メニュー -> 開発ツール -> Launch Senium Builder.

Selenium Builderについては、以下の記事がとても詳しい。Special Thanks!!

まとまったドキュメントはここ。

ruby selenium webdriverの準備

rubyから seleniumを利用するために、selenium-webdriverを利用する。

gem install selenium-webdriver

プロキシ配下では以下。

gem install selenium-webdriver -r -p https://username:password@proxy.hostname:port

Windows環境のワナ

Windows環境でgem installを動かすためには、devkitのインストールが必要。 RubyInstallerと Devkitをセットでインストールする必要がある。

Cygwin環境のワナ

そもそも、Cygwin環境では 依存パッケージのffiがバグっててインストールできない。

Cygwin64bit版は依存しているffiライブラリがバグってる!パッチを当てる必要があるという茨の道。

$ gem install selenium-webdriver

Building native extensions.  This could take a while...
ERROR:  Error installing selenium-webdriver:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby.exe extconf.rb
checking for ffi.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more

回避方法をためしてみても、自分の環境ではうまくいかなかったので諦め。

Rubyコードを生成

自動化したいページで右クリックする。

SeleniumBuilderが立ち上がる。記録の開始を選択して、作業を記録。

記録が終わったら、ツールバー -> ファイル -> エクスポートを選択。

Selenium2としては以下の形式へExportできる(2014/5現在)

  • JSON
  • Java(Junit/TestNG)
  • Ruby
  • Python
  • PHP
  • Node.JS
  • C#

Selenium1としてExportするとさらに対応言語が多くなる。

  • HTML
  • Groovry
  • Perl

Selenium1だと、RubyのRSpecやtextunitにも対応しているようだ。もっともっと多くなるのは時間の問題だろう。スゴい!

Rubyを選択して、Rubyのコードを生成。

require 'rubygems'
require 'selenium-webdriver'
wd = Selenium::WebDriver.for :firefox

wd.get "https://www.google.co.jp/"
wd.find_element(:id, "lst-ib").click
wd.find_element(:id, "lst-ib").clear
wd.find_element(:id, "lst-ib").send_keys "Selenium Builder"
wd.find_element(:css, "div.tsf-p").click
wd.find_element(:name, "btnK").click
wd.quit

selenium-webdriverがrequireされいてるところに注目されたし。

Rubyコードを実行

生成したコードをコマンドラインから実行するだけ!こんなに簡単だとは!