Windows10とpythonとChromeでSeleniumを動かしてみる

ヨメレバCSS
オリジナルCSS

 とりあえずWindows10で環境作ったときのメモです。

スポンサーリンク
GoogleAdSence レクタングル(大)

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が設定したっぽい環境変数PYTHONHOMEPYTHONPATHがあったので、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が起動してきて、スクリプトに書かれたとおり勝手に検索して結果をコンソールに返してくれます。

参考

スポンサーリンク
GoogleAdSence レクタングル(大)