Windows 11 IEmode 上で Selenium を利用するための IEDriver について

Internet Explorer 11 の EOS に伴い、 Edge や Chrome 対応を行っている組織は多いと思います。

その対応の中で厄介なのが VBA などを用いて CreateObject を実施していたケースです。

ブラウザーからのアクセスであれば IEmode を用いることで、ある程度仕組みの更新を行わずとも動作させることができますが、 IE のコントロールを直に触っていた上記ケースではコードの修正を行っていくほかありません。

修正方法としては界隈で様々なパターンが試みられているのですが、 docs に WebDriver を用いた方法の一つとして、 IEmode を利用するパターンが記されていました。

https://docs.microsoft.com/ja-jp/microsoft-edge/webdriver-chromium/ie-mode?WT.mc_id=WDIT-MVP-5002496

この手法は WebDriver という常駐型のブラウザー操作アプリを起動させ、その WebDriver を用いて操作の自動化を行うという方法です。

VBA では CreateObject(InternetExplorer.Application) を行うだけでブラウザーが起動でき、その戻り値に入っているオブジェクトを直接操作できたので楽でした。

これを置き換えるための方法という感じです。

上記の docs では C#Java からの呼び出し方法が書かれていますが、 VBA で利用したい場合は SeleniumBasic と呼ばれるラッパーを用いると簡単に実装できます。

https://github.com/florentbr/SeleniumBasic/

実際に利用する際は以下の IEDriver 利用の設定に従い、いくつかの設定を行っておく必要があるようです。

https://www.selenium.dev/documentation/ie_driver_server/

f:id:mohessu:20220106013500p:plain

IE の設定を緩くするようなことが書かれているため、実際の実行には制限がありそうですが、修正の一つの方法として覚えておくとよいかもしれません。

音楽:始