Webの操作を自動化してくれる「Selenium」を使ってみた

どーも、健康診断に行ってみたら高尿酸血症の判定がでたヨシダです。

ふざけんじゃねーよ!

まあ、そんな近況報告はいいとして。
本日はタイトルにもあります通り、「Selenium」というものを使ってみたので解説したいと思います。
環境は macOS High Sierra バージョン10.13.6 です。

Seleniumとは?

Webブラウザを使ってWebアプリケーションをテストするツールです。もちろん無料で使えます。人が手でWebブラウザを操作する代わりに「Selenium」がWebブラウザを操作してくれるのです。
今回は動画のように、ブラウザを立ち上げてグーグル検索に「yoshidamasaaki」と入力したあと、僕が趣味で作ったサイト「https://www.yoshidamasaaki.com/」を開き、5秒後にブラウザを閉じるという操作を自動化させてみました。

導入方法

MACのターミナルを起動します。
 

「Selenium」をpython言語で動かすので、まずはpythonが入っているかバージョンを確認します。

$ python --version

MacOSは最初からpythonがインストールされていますので大丈夫だと思いますが、もしバージョンが表示されませんでしたら、pythonをいれてください。
 

次に僕のMACに「Selenium」をいれていきます。

$ pip install selenium

もしpipコマンドが使えない場合は、pipコマンドを使えるように下記のコマンドを実行してください。

$ sudo easy_install pip

 

次にブラウザを操作するには、各ブラウザに合わせてドライバーを準備する必要があります。
今回はChromeを使用するので Chrome用WebDriverのサイトからChromeDriverをダウンロードします。
サイト:https://sites.google.com/a/chromium.org/chromedriver/
2018/7/19(木)現在では、最新が「ChromeDriver 2.40」みたいなので、クリックした後に「chromedriver_mac64.zip」をクリックして解凍してください。
すると「ダウンロード」に「chromedriver」があると思いますので、わかりやすいようにデスクトップに移動しておいてください。
これで環境は整いました。

さっそく実行

動画のように自動操作するためのコードを「selenium-yoshida.py」に保存します。
まずはデスクトップまで移動します。

$ cd /Users/yoshida/desktop

「selenium-yoshida.py」を作成して保存(esc+:wq!)。

$ vi selenium-yoshida.py
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep

# ブラウザを開く。
driver = webdriver.Chrome(executable_path='/Users/yoshida/desktop/chromedriver')
# Googleの検索TOP画面を開く。
driver.get("https://www.google.co.jp/")
# 検索語として「yoshidamasaaki」と入力し、Enterキーを押す。
driver.find_element_by_id("lst-ib").send_keys("yoshidamasaaki")
driver.find_element_by_id("lst-ib").send_keys(Keys.ENTER)
# タイトルに「だよしのギャンブル日記」と一致するリンクをクリックする。
driver.find_element_by_link_text("だよしのギャンブル日記").click()
# 5秒間待機してみる。
sleep(5)
# ブラウザを終了する。
driver.close()

 

pythonを実行します。

$ python selenium-yoshida.py

 

これで動けば完璧です!
ファイル名やフルパスなどは各自任意の値に変更してくださいね。

ブラウザを操作するコードなどは、こちらのサイトが参考になるかと思います。
サイト:http://www.seleniumqref.com/api/webdriver_gyaku.html

感想

結構簡単に導入できましたね。python言語を知らなくても、参考サイトがしっかりしてるので、全然余裕でコードを書けますしね。
ただ思ったのが、セキュリティ的にみて、これ結構悪用できんじゃね??
例えば、ログイン画面でログインしまくったり、アクセスしまくってサーバーに負荷かけたり…
いや、できちゃいますねこれ。
使い方によっちゃ、実は危険なツールな気がします。
みなさんは絶対にしないようにしてくださいね。
そして、セキュリティ対策もしっかりしてくださいね!
ありがとうございました。

LINEで送る
Pocket

こんな記事も読まれています