とりあえずWindows10で環境作ったときのメモです。
目次
Seleniumとは
Webブラウザのテスト自動化ツール。なんだけど操作を自動化できるので色々使えてる。
次の言語に対応してます。
対応している言語から、APIを叩いてブラウザを操作できる感じ。
- Java
- C#
- Ruby
- Python
- Javascript
またサードパーティ製だけど次の言語にも。
- Perl
- PHP
- Haskel
- Objective-C
- Javascript
- R
- Dart
- Tcl
- Elixir
ブラウザの操作を記録して再生するマクロみたいなSelenium IDE もあるので、簡単な操作ならこちらで記録・再生させてもいいと思います。(※ただしパスワードなども丸見えで保存されるので注意)
Windows10とChromeで使う
私の環境がWindowsなのでとりあえずサンプル動かすまでのメモです。Windows10だからどうってことはあんまりなかったかもですけど。
Pythonをインストール
言語はどれでもよいですが、PHPだと別途サービスを起動させる必要がありそうだったのでPythonでいいかなと思って選択。
まず公式そのままにインストーラーでインストールします。
うちは64bitなので、3.7.4のダウンロードページより「Windows x86-64 executable installer」をダウンロードしてインストール。
環境変数の設定を見直し
インストールして実行してみると次のエラーが。
Fatal Python error: initfsencoding: unable to load the file system codec ModuleNotFoundError: No module named 'encodings' Current thread 0x00005244 (most recent call first):
環境変数を見直してみるといいそうなので見てみると、大昔にインストールしたTracLightningが設定したっぽい環境変数PYTHONHOME
とPYTHONPATH
があったので、PYTHONHOMEを先ほどインストールしたPythonのディレクトリに、PYTHONPATHは削除しました。
これで無事に起動。
Pythonのselenimをインストール
公式サイトまま、pipでインストールします。
pip install selenium
Chrome用WebDriverをインストール
Chrome用のWebDriverをインストールする必要があるみたいなので、ダウンロード先から自分のChromeのバージョンに合わせたものをダウンロードします。
Chromeのバージョンは「ヘルプ > Google Chromeについて」で確認。
うちはバージョン: 77系みたいでしたのでそれを。Windowsはwin32のみのようですが64bitでも動きました。
ダウンロードしてきた「chromedriver_win32.zip」に入っている「chromedriver.exe」を、どこかパスの通ったところに置きます。
(私は自分のプロファイル直下に「bin」ディレクトリを作って、「%USERPROFILE%\bin」を環境変数PATHに追加しました)
Chromedriverが入ってないと、「selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home」とエラーが出ます。
Eclipseをセットアップする
Pythonが入ったのでIDEは絶対ではないですが、ついでにEclipseを設定します。
Python開発用にPyDevを入れました。
「Help > Install New Software」を開いて、「Work With:」に「http://www.pydev.org/updates」を入力してEnterするとしばらくしてPyDevが出てきます。
これにチェックを入れてインストール。
サンプルを実行してみる
サイトにあるPythonのサンプルだと、printのところで警告が出たのでそこだけ 「print(driver.title)」のような形に変更して実行します。
すると「Chrome は自動テストソフトウェアによって制御されています」と書かれたChromeが起動してきて、スクリプトに書かれたとおり勝手に検索して結果をコンソールに返してくれます。