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言語を知らなくても、参考サイトがしっかりしてるので、全然余裕でコードを書けます。

ただ思ったのが、セキュリティ的にみて、これ結構悪用できんじゃね??

例えば、ログイン画面でログインしまくったり、アクセスしまくってサーバーに負荷かけたり…いや、できちゃいますねこれ。

使い方によっちゃ、実は危険なツールな気がします。

みなさんは絶対にしないようにしてくださいね。

そして、セキュリティ対策もしっかりしてくださいね!

ありがとうございました。

レオンテクノロジーは現在、一緒に働く仲間を募集しております!
興味がある方はこちらから!

セキュリティに関するご相談はこちらから!

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