SeleniumでIEモードを動かす話

「2022年6月15日」MicrosoftがIEサポートを終了した日です。
企業が利用するWebアプリはIEが多いというのはよく知られた話、準備に追われた方も多いのではないでしょうか。
通常であれば「さぁ、別ブラウザに乗り換えだ」なのでしょうがそこはMicrosoftさん、IEユーザを見捨てはしません。
「IEモード」と言うEdge未対応のIEベースの画面を表示するための機能が提供されています。
うーん。
さてIEモードへの個人的な思いはさておき、webアプリをSeleniumで動かしている我々のチームはこのIEモードに対応しなくてはいけません。
とりあえず「起動→文字入力」くらいの軽い物で様子をみようとSeleniumのサイトを参考にさっそくコードを準備し実行!
……
……動かない。
正確にはEdgeは起動しているけどIEモードにならない、です。
何故かと言えばそう、SeleniumでIEモードで動かすにはコードに加えて事前の準備がいるようで……
という訳で以下は「Selenium(java)でEdgeのIEモードを動かすための環境設定」です。
【動作確認した環境】
- Windows 10 Pro 20H2 64bit
- Microsoft Edge 103
- Selenium(java) 4.2.1
- IEドライバ 4.2.0 32bit
※IEドライバは32bitです、64bitは動作が遅いなどいろいろ問題があるのでやめましょう
【設定】
1.PCのディスプレイ設定を「100%」にする
- Windowsの「設定>システム>ディスプレイ」を選択します
- 「拡大縮小とレイアウト」を100%にします
※リモート端末で操作をするなら接続元のディスプレイ設定も100%にしてください
2.IEの表示倍率を「100%」にする
- IEの「設定アイコン>拡大」から「100%」を選択します
※ディスプレイと言い100%に拘るのは座標操作の時に誤差が出るからですね。
3.IEの保護モードをすべてそろえる
- IEの「設定アイコン>インターネットオプション」から「セキュリティ」タブを選択します
- 「インターネット/ローカル イントラネット/信頼済みサイト/制限付きサイト」のすべてのゾーンで「保護モードを有効にする」を「オン」または「オフ」に統一してください
※オン、オフはどちらでもいいです。しつこいようですがすべてのゾーンで設定を揃えてください
4.IEの拡張保護モードを無効にする
- IEの「設定アイコン>インターネットオプション」から「詳細設定」タブを選択します
- 「拡張保護モードを有効にする」を「オフ」にします
5.レジストリを設定
・キー「HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet
Explorer\Main\FeatureControl\FEATURE_BFCACHE」に下記を登録します
名前「iexplore.exe」
種類「DWORD」
値「0」
※キーはWindows 64bitの場合です、そして「FEATURE_BFCACHE」キーがない場合は自分で追加します。「これ設定しなくても動くよ」という報告もありますが接続に関する設定なので後で泣くよりは今やっておくべきだと思います。
そして今度こそ実行!
で、無事にEdgeがIEモードで起動し、画面の操作ができました!!
という訳で何とか動きはしましたが、実はこの先も動作が遅い・不安定などいろいろな問題が待ち構えておりました … … 。
「IEモード」、アプリの改修も少なく済むので今回のサポートアウトの乗り換え先としては良いのかもしれませんが個人的には可能なら早めにEdge、あるいは別のブラウザに乗り換えた方がよいのではないかなと思います。
ずっと「IEサポートアウトはしない」と言っていたMicrosoftさんですからこのIEモードもいつまで使えるかわかりませんしね。
◆WEB会議/セミナーシステム『Szia』
https://www.ois-yokohama.co.jp/szia/
◆サーバサイドで動作するミドルウェア『ReDois』
https://www.ois-yokohama.co.jp/redois/wp_redois/
◆AIがトレンドトピックをもとに、読まれそうな記事タイトルを自動生成『AI Title Maker』
https://ai-title.com/