はじめに
今までwebDriver+IEの組み合わせで作業をしたことがなかったので調査してみた。
環境
Windows 7 SP1
IE11 (更新バージョン11.0.18 KB3038314)
IEDriverServer.exe(64bit版。2.45.0)
Java 1.8.0_40
Eclipse 4.4.2
お約束
IEを使って動作させる場合、インターネットオプションの設定が必須です
この設定を変えてた場合どのような現象が発生するかを調査
インターネットオプションのセキュリティータブ内の設定
インターネット | ローカル | 信頼 | 制限 | 結果 |
---|---|---|---|---|
x | x | x | x | 正常動作 |
O | x | x | x | ブラウザ起動、エレメント 捕捉不可 |
O | O | x | x | 正常動作 |
O | O | O | x | 正常動作 |
O | O | O | O | 正常動作 |
x | O | O | O | ブラウザ起動、エレメント 捕捉不可 |
x | x | O | O | 正常動作 |
x | x | x | O | 正常動作 |
・所感
あれ?なんか結構動いているけど???
この調査は、下記を設定している場合です。
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
これを指定しなかった場合
インターネット | ローカル | 信頼 | 制限 | 結果 |
---|---|---|---|---|
x | x | x | x | 正常動作 |
O | x | x | x | ブラウザ起動せず |
O | O | x | x | ブラウザ起動せず |
O | O | O | x | ブラウザ起動せず |
O | O | O | O | 正常動作 |
x | O | O | O | ブラウザ起動せず |
x | x | O | O | ブラウザ起動せず |
x | x | x | O | ブラウザ起動せず |
・所感
なるほど。で、そもそもあの指定は何?
seleniumのコントリビューターである JimさんのPOST
http://jimevansmusic.blogspot.jp/2012/08/youre-doing-it-wrong-protected-mode-and.html
<<超超訳>>
この設定はレジストリのチェックをしなくするものであって、危ないことをしてるよって意味だよ。
正攻法は、インターネットオプションの設定をしてね
・所感
ネットを検索すると、なぜか設定をOFFに合わせる記述になっているけど
この設定にするとアラートが上がる通り、危険にさらされる訳で
4つのロケーションを合わせてね、とあるが OFFにしろ とはなっていないし 全てON の方が良いと思うのだが???
自分の環境では正常動作を確認していますが不具合があった事象を知っている方教えてください。
過去にあった事象
事象:JavaScript error
原因:2014.12に適用された セキュリティーパッチ KB3025390 が原因
解決方法:MSが出した KB3021952を適用する
現象:キー入力が遅い
原因:ドライバーの64bitと32bit混在が原因との情報あり
http://stackoverflow.com/questions/8850211/why-is-selenium-internetexplorerdriver-webdriver-very-slow-in-debug-mode-visual
解決方法:32bit版を使う(少なくとも自分の環境では普通に使えました)
(参考 http://devadjust.exblog.jp/19305561/ )
現象:NoSuchWindowException
原因:(追いきれませんでした・・・)
https://code.google.com/p/selenium/issues/detail?id=6511
解決方法:レジストリーを書き換える(詳しくは公式をご覧ください)
32bit版Windowsの場合、"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE"
64bit版Windowsの場合は、"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE"
所感
いろいろな情報が錯綜していて原因と解決策が一致していないかもしれないので間違っている点があればご指摘ください。
参考
公式
https://code.google.com/p/selenium/wiki/InternetExplorerDriver
@ITの保護モードの説明
Internet Explorerの保護モードとは?
http://www.atmarkit.co.jp/ait/articles/1405/16/news128.html