💨

seleniumをrubyでやってみた

2021/09/20に公開

はじめに

本記事は、筆者による理解の復習・確認やアウトプットの練習のために書いております。
間違った解釈等ございましたら、ご連絡いただけますと幸いです。

Seleniumとは?

Selenium は、 Webアプリケーションをテストするためのポータブルフレームワークである。
Selenium は、テストスクリプト言語(Selenium IDE)を学ぶ必要なしに、機能テストを作成するための再生ツールを提供する。

引用: Selenium (ソフトウェア)

https://ja.wikipedia.org/wiki/Selenium_(ソフトウェア)

手順

1.rubyファイル, フォルダ作成(.rb)

mkdir selenium-ruby # フォルダ作成
cd selenium-ruby # selenium-rubyフォルダに移動
touch selenium-ruby.rb # selenium-ruby.rbを作成

2.selenium-webdriverのインストール

gem install selenium-webdriver

3.自動化するコードを書く

# selenium-webdriverを取り込む
require 'selenium-webdriver'

# ブラウザの指定(Chrome)
session = Selenium::WebDriver.for :chrome
# 10秒待っても読み込まれない場合は、エラーが発生する
session.manage.timeouts.implicit_wait = 10
# ページ遷移する
session.navigate.to "https://google.com/"

# ページのタイトルを出力する
puts session.title

# 検索フォームの取得(この場合はname属性で取得している)
query = session.find_element(:name, 'q')
# "zenn"を自動入力する
query.send_keys('zenn')

# 送信(検索)
query.submit

# 5秒遅延(処理が早すぎてページ遷移前にスクリーンショットされてしまうため)
sleep(5)

# スクリーンショットをして"zenn.png"で保存する(保存される場所は、コード実行箇所)
if session.save_screenshot('zenn.png')
  # スクリーンショットができたら出力する
  puts "スクリーンショットされました!"
end

# ブラウザを終了
session.quit

おそらくこのまま実行してもエラーが出ると思います。

session = Selenium::WebDriver.for :chrome

unable to connect to chromedriverというエラーが表示されます。

chromeのWebDriverのインストールが必要になります。

5. ブラウザのWebDriverのインストール

今回はChromeなのでChromeDriverですが、
FireFoxだとGeckoDriverになります。

brew install chromedriver

6.完成

無事、zennで検索した後のスクリーンショットを
自動で行うことができました。

コード中で書いた出力もちゃんとされてます!

引用・参考URL

https://www.katsulog.tech/ruby-selenium-webdriver-tutorial/

https://qiita.com/halspring/items/ed81ec980f39f0489a9e

https://kurozumi.github.io/selenium-python/locating-elements.html

https://www.seleniumqref.com/api/ruby/window_get/Ruby_save_screenshot.html

https://www.seleniumqref.com/api/ruby/time_set/Ruby_implicit_wait.html

https://techacademy.jp/magazine/18704

https://www.selenium.dev/ja/documentation/

https://qiita.com/edo_m18/items/ba7d8a95818e9c0552d9

GitHubで編集を提案

Discussion