1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ruby+Seleniumでブラウザの自動化ツール作成

Last updated at Posted at 2020-06-01

大学の履修登録の抽選科目で誰かが外した時に、先着でその授業を取るためにひたすらポチポチする作業を自動化するツールを作りました。
大学ごとに履修登録の仕方は異なると思うので、大枠だけ記しておきます。
使用したのはRuby、SeleniumWebDriver、ブラウザはGoogleChromeです。

##Seleniumとは
Webブラウザ上でWebアプリケーションを自動で操作(テスト)するツール。

##Selenium WebDriverとは
旧来のSelenium RCの問題点を解決し、ブラウザを操作する仕組み。
Selenium RCをSelenium1、Selenium WebDriverをSelenium2とも呼ぶ。

##環境

$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.6
BuildVersion: 18G103

$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin18]

##Selenium WebDriverのインストール

$ gem install selenium-webdriver

ターミナルでSelenium WebDriverのgemを追加。

$ gem list

でselenium-webdriverと表示されればOK!

##ChromeDriverのインストール
今回はブラウザでGoogleChromeを使用するので、下記リンクからChromeDriverをインストールします。

Chrome Driver

##サンプルコード
エディタでコードを書いていきます。大学によってページ遷移など異なると思うので、簡潔に。
今回はRubyを使用するため、selenium_test.rbなどと名付けておきます。

selenium_test.rb
require 'selenium-webdriver'

driver = Selenium::WebDriver.for :chrome
driver.manage.timeouts.implicit_wait = 60
# 指定したドライバの要素が見つかるまでの待ち時間を指定

driver.navigate.to "URL"
# URLを指定してアクセス

driver.find_element(:xpath, '該当のxpathを記載').click
# xpathでボタンを指定して押す

driver.find_element(:name '指定したいname属性').send_keys('入力したいワード')
# name属性の入力フォームを指定して文字を入力する。

# 後はif文やloop文などを使用して、各々の大学の履修登録に合わせて作成してください

driver.quit
# ドライバを閉じる

以下コマンドで実行。

$ ruby selenium_test.rb

おかしな点があればご指摘お願いします!!

##参考
Seleniumチートシート

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?