Selenium 入門

  • 67
    いいね
  • 0
    コメント

これはなに?

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要素の見つけ方や、テストモジュールとの組み合わせ方等を学んで行くことになります。