Edited at

Selenium 入門

More than 1 year has passed since last update.


これはなに?

Seleniumの使い方の初歩を解説したページです。

あまりプログラミングに明るくない人でも、コマンドラインからブラウザ操作できる感覚を掴んでもらうことが目標です。

元は社内向けの教育資料だったため、情報の古い箇所があるかもしれません。

また、解説資料としては画像が少なめとなっていますが、これは実際にPCを操作させながら教えていたためです

Windows+Rubyで動作させています。


Seleniumって何?

ググってみた。


Webアプリケーション用テストツール。

ブラウザの操作をシミュレート(自動化)して、Webアプリケーションの画面周りの再帰試験(リグレッションテスト)を実施することができる。

Selenium2.0以降より、WebDriverというAPI、実装を使った実装に変わった。

WebDriver API を使うようになったので、テストのスクリプトコードも大きく変更された。


だそうです


準備

Rubyを使います。

http://rubyinstaller.org/downloads/



  • Rubyのインストール


    • インストーラ使って、一撃でインストールしちゃおう(とりあえずrubyinstaller-2.3.3を使っておきましょう)

    • Add Ruby executables to your PATH ←チェック入れておけ(環境変数にパスを通すヤツ)




  • Developmentkit


    • 適当な場所に解凍(フォルダを作ってから解凍しよう)

    • 解凍して出てきた中身を全部 C:\Ruby23 の中に上書き保存

    • コマンドプロンプトでRubyのフォルダまで移動して、以下のコマンドを打つ




cd C:\Ruby23

ruby dk.rb init

ruby dk.rb install


※Rubyインストールの参考: http://www.kkaneko.com/rinkou/ruby/rubyinstaller.html

※コマンドプロンプトの参考: http://ykr414.com/dos/


  • これだけ覚えれば何とかなるコマンドプロンプト


    • cd "dir" #指定のディレクトリに移動

    • cd .. #1つ上の階層に移動

    • dir #ディレクトリの中身を表示

    • exit #コマンドプロンプト終了



selenium-webdriver ってのをインストール


gem install selenium-webdriver


geckodriver ってのをインストール

https://github.com/mozilla/geckodriver/releases


  • 上記URLにアクセスして必要なファイルをダウンロードして解凍→geckodriver.exe が出て来る

  • C:\geckodriver ←こんなフォルダを作ってgeckodriver.exeを配置

  • システム環境変数にてパスを通す

準備は以上です。


チュートリアル

Seleniumを使ってFirefoxを操作してGoogleで「selenium」という文字列を検索してみましょう。

以降、操作は基本コマンドプロンプトで行います。

まずirb(インタラクティブRuby)ってのを立ち上げます。


irb


すると


irb(main):001:0>


↑こんな感じになります。

こうすれば1行毎に出力結果が返ってくるので、わかりやすいです。

では、まず、selenium-webdriverを呼び出しましょう。


require "selenium-webdriver"


次は、Firefoxを起動します


driver = Selenium::WebDriver.for :firefox


※大文字、小文字も正確に!

Googleにアクセスします


driver.get "https://www.google.co.jp/"


これでGoogleにアクセスできたはず。

検索窓にseleniumと入力してみましょう


driver.find_element(:class,"gsfi").send_key "selenium"


「Google 検索」ボタンをサブミットします(エンターキーを"ッターン"ってする操作)


driver.find_element(:name,"btnK").submit


これで検索結果画面が表示されたはず。

Firefoxを閉じましょう


driver.quit


ついでにirbからも抜けておきましょう


irb(main):xxx:x>exit


いかがでしょう、マウスを使わずにブラウザを操作することができましたね。

しかし、毎度irbでSeleniumをいじっていたら、

マウス操作と手間が変わらないので、自動スクリプトとして実行してみましょう。

テキストファイルで今までの内容を入力して、

ファイル名を"selenium.rb"として保存します。


selenium.rb

require "selenium-webdriver"

driver = Selenium::WebDriver.for :firefox
driver.get "https://www.google.co.jp/"
driver.find_element(:class,"gsfi").send_key "Selenium"
driver.find_element(:name,"btnK").submit
driver.quit

コマンドラインで


ruby selenium.rb


と入力するか、ファイルをダブルクリックして開けば、スクリプトが実行されます。

スクリプトを実行した場合でも、irbで入力した時と変わらない挙動になります。

これでSeleniumを利用してブラウザの自動操縦ができるようになりました。


この後の展開

とりあえずの入門編は以上です。

この後はUI要素の見つけ方や、テストモジュールとの組み合わせ方等を学んで行くことになります。