Daily Grind

システム開発関連の忘備録です

Python + Selenium 環境構築

Python + Selenium 環境構築

0.はじめに

できるだけシンプルに動作できるように導入するのはPythonSelenium、WebDriverだけにとどめる。

 参考:https://www.inet-solutions.jp/technology/python-selenium/#i
 公式:https://seleniumhq.github.io/selenium/docs/api/py/api.html
 非公式(日本語):https://kurozumi.github.io/selenium-python/api.html

1.Pythonのインストール

 今回は、3.6.5をインストールした

2.Seleniumのインストール

 pip install selenium

 * pipはPythonのパッケージ管理ツール。標準でインストールされる。
 * seleniumは今回は3.11.0がインストールされた。
 * Proxy環境では、HTTP_PROXYを設定する必要あり。

3.WebDriverのインストール

 ブラウザを操作するには、各ブラウザに合わせてドライバーを用意する必要があります。
 今回は Chrome を使用するので 公式サイトから ChromeDriver をダウンロードします。

4.IEのセキュリティ設定

 インターネットオプションの「セキュリティ」タブで、各ゾーンの「保護モードを有効にする」の設定を
 合わせておかないと、find_element_by_id系のメソッドでNoSuchElementExceptionなどエラーが発生した。

 http://livedoor.blogimg.jp/kmiwa_project/imgs/8/2/82cbdbba.jpg

 ※今回はローカルイントラネットと信頼済みサイトの「保護モードを有効にする」のチェックを付けた。

5.レジストリの設定

 IEの場合はこれをやっておいたほうが安定するらしい?
 https://bitwave.showcase-tv.com/selenium%E3%81%A7internet-explorer11%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99%E6%96%B9%E6%B3%95/

 レジストリにキーがなければ作成し、iexplore.exeというDWORD値を作成し、値を0にします。

 (32bitの場合)
   \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BFCACHE

 (64bitの場合)
   \HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BFCACHE

6.その他

6.1.IEでのファイルダウンロード

 ボタン操作でファイルをダウンロードする際にIEの「○○を開くか、または保存しますか?」の画面が出るとSelenium経由での制御ができなくなる。
 pyrobotというGUIを直接制御するクラス(JavaのRobot APIPython移植版)を使えば回避ができた。
 
 ■pyrobot
  https://github.com/chriskiehl/pyrobot

  テストスクリプトと同じディレクトリに「pyrobot.py」を配置。

7.参考文献

  ■Seleniumクイックリファレンス
   http://www.seleniumqref.com/

  ■Python unittestフレームワーク
   https://docs.python.jp/2/library/unittest.html#module-unittest