初めに
働き方改革の手段としてRPAを自前で構築しようとする際、Seleniumは有力な選択肢の一つとなる。
SeleniumはChromeやFirefoxといったブラウザで使うのが一般的だが、悲しいかな、IE(Internet Explorer)しか使えないという不幸な職場も一定数存在すると思われる。(かくいう私も現在そんな境遇に置かれている)
IEでSeleniumを使うにはひと工夫必要なので、その方法を書き留めておく。
想定する読者と前提条件
当記事はIEでSelenium Webdriverを使用しWeb操作を自動化したい人に向け、その方法をお伝えする内容である。
RPAを自前で構築したいがIEでしか動作が保証されないWebシステムを利用している人にとっては役立つことだろう。
言語はPythonを使用。Anaconda等の環境は整っている前提で、ChromeやFirefoxでSeleniumを使ったことがある人向けの内容となっている。
大まかな流れ
1.全てのゾーンの「保護モード」を有効にする。
2.IEDriverServerをダウンロード。
3.IEDriverServerをPythonプログラムから読み込む。
4.Chrome等と同様に操作したい内容を記述する。
詳細な手順
①全てのゾーンの「保護モード」を有効にする
IEには「保護モード」と呼ばれるセキュリティ機能があるのはご存知かと思う。
IEでSeleniumを使うには、全てのゾーンに対して保護モードを有効にする必要がある。
IEの画面上部メニュー「ツール」から「インターネットオプション」を選択して保護モードの設定を確認しよう。(上部メニューが見当たらない時は「Alt」キーを1回押すとメニューが現れる)
より正確にいうと、全てのゾーンに対して同じ設定がされていなければならない。
つまり全てのゾーンに対して保護モードを「有効」にするか、反対に全て「無効」にすることでも動く。(が、後者はセキュリティ上不安が生じる)
「なんで?」とツッコみたくなるかもしれないが、とにかくそうしないとうまく動かないのでそうするほかはない。
職場によっては保護モードを自由に変更できないように制限されている環境もあるかもしれない。
その場合、IEによるSelenium使用は現時点で諦めるしかない。
(IEのこういう謎の制約ホントキライ...)
②IEDriverServerをダウンロード
保護モードを変更できることが確認できたら、次にIEDriverServerをダウンロードしよう。
Seleniumのサイトからダウンロードできる。
https://www.seleniumhq.org/download/
32bit版と64bit版があるので自身の環境に合わせてダウンロードしよう。
ダウンロードしたIEDriverServer.exeを任意の場所に格納しておく。
③IEDriverServerをPythonプログラムから読み込む
ここまで来ればChromeやFirefoxの時と要領は同じだ。
webdriverを読み込む箇所で先ほどダウンロードしたIEDriver.exeを読み込むように記述する。
driver = webdriver.Ie(r”IEDriverのパス”)
④操作したい内容を記述する
Chrome等と同様にdriver.get(‘接続先のURL’)で目的のページへ遷移し、find_element_byほにゃららでエレメントを取得し操作する流れとなる。
最後に
最初の保護モードの部分が壁になる可能性はあるが、そこを超えればすんなりと使えるだろう。
IEにしては上出来なのではないか。
当初職場でIEしか使えないと知った時は嫌な予感しかしなかったが、Seleniumを使うという点では意外と簡単だったのでほっとした。
が、そんなふうにいちいち気を揉ませるIEはやっぱり好きになれない。