Selenium WebDriverでRubyのテストを行う方法【初心者向け】

初心者向けにRubyでSelenium WebDriverを使う方法について解説しています。Selenium WebDriverの導入と実際のテストの方法まで解説します。ぜひ使い方を覚えておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

RubyでSelenium WebDriverを使う方法について解説します。

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Selenium WebDriverの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

Selenium WebDriverとは

Selenium WebDriverとは、プログラミングを介して、ブラウザを操作するライブラリです。

例えば、毎日特定のWEBページをスクレイピングしたい、特定の操作を行いたいなど、手動ではなく、プログラムが自動で実行できるようにすることが出来ます。

 

Selenium WebDriverの使い方

Selenium WebDriverを使う際は、GEMをインストールする必要があります。

以下のコマンドを実行する事で、インストールが完了します。

gem install selenium-webdriver

selenium-webdriverを使用するに際して、ブラウザのバイナリ(本体)、ドライバが必要となります。

ドライバは以下のURLより取得できます。
https://sites.google.com/a/chromium.org/chromedriver/downloads

Gemとバイナリ、ドライバ、サーバのインストールが完了したら以下のように実行できるようになります。

require 'selenium-webdriver'

driver = Selenium::WebDriver.for :chrome
driver.get "http://google.com"

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

Googleへアクセスし、検索窓に文字列を入力し検索を実行、その後、スクリーンショットを取得する、という内容を行います。

ソースコード

require 'selenium-webdriver'

session = Selenium::WebDriver.for :chrome
session.manage.timeouts.implicit_wait = 600
session.navigate.to "https://google.com/"

# ターミナルへページタイトルを出力
puts session.title

# googleの入力フォームを指定
query = session.find_element(:id, 'lst-ib')
# フォームへの入力内容
query.send_keys('techacademy')

# 入力内容を実行
query.submit

# スクリーンショットを取得
session.save_screenshot('page.png')

# ブラウザを終了
session.quit

WEBアプリケーションの作成時にテストが必要となりますが、

実際に入力してテスト、というのを手動で行うと、時間がかかってしまうので、このように自動化できると効率化ができそうです。

 

監修してくれたメンター

中廣 誠

職種: WEBエンジニア

過去の開発実績・業務内容:
一部上場企業にて、WEBアプリケーションの受託開発、自社WEBサービス開発、自社ゲーム開発に従事
現在はフリーで活動し、ECサイト開発/運営、課題を解決するためのシステムコンサルタントなどを実施

趣味など
フリーでの活動を期に沖縄へ移住したので、海でのスキンダイビング、釣りなどを趣味にしています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは初心者でも最短4週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。