見出し画像

web自動化のためのSeleniumインストール

個人にしろ法人にしろ事業をしていると毎月の月次処理というものが必ず発生しますよね。報告書を取引先に送付したり、オンラインサービスにログインして請求書をダウンロードしたり、外注費を計算して記録したり。毎月同じ手順をこなしていて、これがまた地味なくせに手間がかかる。いつか自動化してやろうと思うものの、時は過ぎゆくばかり…。
ですが! この度、ようやく重い腰を上げてで自動化しました。今回はその作業ログです。

Seleniumを使う

web界隈従事者であればもうお馴染みでしょう、Selenium(セレニウム)を使います。Seleniumを使うとブラウザ操作を自動化できるのです。

Seleniumはブラウザを自動化します。そうです!
その力で何をするかは完全にあなた次第です。

主にテスト目的でWebアプリケーションを自動化するためのものですが、それに限定されるものではありません。
退屈なWebベースの管理タスクも自動化できます(自動化する必要があります)。

Selenium公式

 webアプリケーションテストの自動化を目的として使われることが多いようですが、それ以外でも使えるよと公式も言っていますね。

プログラミング技術は必要か?

結論、合ったほうが良いです。

プログラミング技術がなくても、Selenium IDEを使えば大丈夫です。Excelのマクロのように操作しているのを記録して再現してくれるものです。ここではSelenium IDEについては割愛しますが、ちょっとした操作の記録にはこちらのほうが便利です。

ただ、できることは限定されます。細やかに操作を指定したければプログラミングの知識は必要になるでしょう。
プログラミング言語はPython、Java、C#、Ruby、PHP、JavaScriptなど多くの言語が利用できますが、Pythonでの記事が多いように感じました。
僕はPHPerでしてPythonは使ったことがないのですが、情報源が多いほうがいいと思いPythonに初挑戦することにしました。

環境構築

動く状態ができあがってからまとめたバージョン情報です。

  • macOS Monterey12.5

  • Google Chrome 104.0.5112.79

  • Python 3.9.13

  • Selenium 4.3.0

  • ChromeDriver 104.0.5112.79.0

Pythonをインストール

Python初挑戦なのでマシンに入っていません。僕はHomebrewがインストール済みなのでそれを使用してサクッとインストールします。Homebrewを使わずにインストールしてもいいと思います。

$ brew install python3
Running `brew update --preinstall`...

(省略)

Error: python@3.9: the bottle needs the Apple Command Line Tools to be installed.
  You can install them, if desired, with:
    xcode-select --install

と思ったらApple Command Line Toolsを先に入れろとエラーが吐かれました。言われたとおりにします。

$ xcode-select --install
xcode-select: note: install requested for command line developer tools

CUIで完結するのかと思いきやGUIになりました。そんな感じなのね。

突然のタイアログ(ビビった)

そしてインストール完了まで10分くらい掛かりました。ようやくPythonを入れます。

$ brew install python3
python@3.9 3.9.6 is already installed but outdated (so it will be upgraded).

(省略)

Python has been installed as
  /usr/local/bin/python3

Seleniumをインストール

次にpipでSeleniumライブラリをインストールします。(Pythonのパッケージ管理はpipという名前なんですね。「ピップ」、声に出したくなります。)
多くの記事でpipを使っていますが、僕の環境ではpipではコマンドがないと言われるのでpip3を使っています。

$ pip3 install selenium

(中略)

Successfully installed PySocks-1.7.1 async-generator-1.10 attrs-22.1.0 certifi-2022.6.15 cffi-1.15.1 cryptography-37.0.4 h11-0.13.0 idna-3.3 outcome-1.2.0 pyOpenSSL-22.0.0 pycparser-2.21 selenium-4.3.0 sniffio-1.2.0 sortedcontainers-2.4.0 trio-0.21.0 trio-websocket-0.9.2 urllib3-1.26.11 wsproto-1.1.0

ChromeDriverをインストール

Seleniumがブラウザをコントロールするためのドライバーをインストールします。今回はChromで動作させるのでChromDriverを使います。

$ pip3 install chromedriver-binary

(中略)

Successfully installed chromedriver-binary-104.0.5112.79.0

最初の実行

hello.pyというファイルを任意の場所に作成します。今回は~/hello.pyに置きました。
ブラウザを起動、Googleを表示、ブラウザを終了するコードです。

hello.py

import chromedriver_binary
from selenium import webdriver

options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=options)

# ブラウザを起動して、Googleを表示
driver.get('https://www.google.com/')

# ブラウザを終了
driver.quit()

ターミナルで実行

$ python3 ~/hello.py

コードの書き方はたくさん記事があるのに、肝心の実行方法がわからなくて困ってしまいました。単純にpyファイルをPythonで実行すればよいだけでした。(pipと同じで、pythonではなくpython3を使っています。)

ブラウザが起動して、Googleを表示され、その後すぐにブラウザが終了すればOKです。

hello.pyを実行して起動したGoogle Chrome
「Chrome自動テストソフトウェアによって制御されています。」の文章がある。

ひとまずはここまで

これでSeleniumのインストールまでできました。上げた腰がまた重くならないうちに続きをやろうと思います。

いいなと思ったら応援しよう!