Firefoxとchromeは正常に動作していますが、IE 11を使用すると、sendkeysが非常に遅くなります。この問題をどのように修正しますか?
私の環境:
私の環境:WIN 10、Selenium 3.4、IE64設定:インターネットオプション→詳細設定→セキュリティ→Enhanced拡張保護モードの64ビットプロセスを有効にする
32bit版をダウンロードして使って修正しました。解決に役立ったスレッド
https://github.com/seleniumhq/Selenium-google-code-issue-archive/issues/5116
オンラインでたくさん読んで実験した後
Webドライバーを指すようにパスを設定する必要がありました。[コンピューター]を右クリックし、[システムの詳細設定]、[環境変数]、[パス]の順に選択して、[編集]をクリックしました。ここで、IEDriverServer.exeへのパスを追加します。たとえば、「C:\ Eclipse\webdriver\IEDriverServer.exe」でした。私はあなたのPCを再起動することをお勧めします
32ビットを実行する必要がありますIE WEBドライバー http://Selenium-release.storage.googleapis.com/index.html 3.0をダウンロードしました
ここに、私に世界を変えた金の部分があります。 IEを管理者として実行するように設定します。IEショートカットを右クリックしてオプションを選択し、ショートカットタブで詳細ボタンをクリックして[管理者として実行]チェックボックスをオンにします。IEを再起動します
IEを開いたら、ツール、インターネットオプション、セキュリティタブの順に進みます。ローカルイントラネットと信頼済みサイトで[保護モードを有効にする]をオフにしました。IEを再起動してください。
私は次の望ましい機能を使用しました(インターネットでこれを見つけました)
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING,false);
dc.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, false);
dc.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, true);
dc.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
dc.setJavascriptEnabled(true);
WebDriver driver = new InternetExplorerDriver(dc);
これは私の環境で機能しました
注意してください:この後、私は64ビットドライバーを試してみました。 (InternetExplorerDriver.REQUIRE_WINDOW_FOCUS、true)を作成した場合、正常に機能します。 junitではアサーションは失敗しますが、最初のページで送信キーを使用できました。
私はSeleniumライブラリSelenium-server-standalone-3.141.59.jarを使用してIE11で作業しており、次の結果が得られました。
Window 10 64ビットバージョンIE 11バージョン11.431.16299、更新バージョン11.0.65(KB4103765)で動作します。IEDriverServer.exe(64ビットバージョン)で正常に動作します。機能の追加設定は不要です。キー期間内は許容されます(1秒以内に6文字)
Window 10で64ビットバージョンIE 11バージョン11.15.16299.0更新バージョン11.0.47 KB4040685 IEDriverServer.exe(64ビットバージョン)で非常に遅い動作6文字の文字列を入力するには、すべての文字に3〜4秒で完了します。問題を解決するために、私がテストした次のコーディングはうまく機能します。
InternetExplorerOptions options = new InternetExplorerOptions();
options.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
Window 7 Professionalの32ビットバージョンIE 11バージョン11.0.9600.18499、更新バージョン11.0.36(KB3191495)IEDriverServer.exe(32ビットバージョン)で正常に動作します。キー入力期間は許容されます。( 1秒以内に6文字)追加の設定は必要ありません
より良い解決策:
注意:このソリューションを実行する前に、すべてのIE設定をリセットしました。また、最初の回答では、はるかに古いバージョンのIEドライバを実行していました。
最新のIEドライバーをダウンロードします-バージョン3.4 32ビットをダウンロードしました(64ビットはテスト中にまだ低速でした) http://Selenium-release.storage.googleapis .com/index.html?path = 3.4 /
IE設定2.1に変更する必要があります。ツール->インターネットオプション->セキュリティに移動します。すべてのゾーンを同じ保護モードに設定します。有効または無効にする必要はありません。次のようにしてください。- http://seleniumquery.github.io/images/ie-driver-protected-mode-disable.png
今あなたのコードでこれを追加してください:
public static void runInternetExplorer() {
System.setProperty("webdriver.ie.driver", "C:\\Eclipse\\webdriver\\IE\\IEDriverServer.exe");
WebDriver webDriver = new InternetExplorerDriver();
new browser (webDriver);
}
これを実行すると、非常にうまく実行されます。このソリューションが機能しない場合は、以前の回答をそのままにしておきます。
Ruby
およびwebdiriver
バージョン3+
に関する注意
ドキュメントには、native_events
IEパラメータを使用した例が含まれていますが、コンソールの開始点で記述されています。
実際、正しいパラメーター名はnativeEvent
です。
セットnativeEvent = false
、
そしてwebdriverは遅いネイティブクリックシミュレーションではなく高速JSを使用します。
IEDriver 32ビット(64ビットから)に変更すると、この問題は解決しました。 IE 11、Windows 7、Selenium 3.4。
IE11では、テストの再生中にテキストフィールド(送信キー)にデータを入力するのが遅すぎます。
以下はシステム情報です。 IEDriver – 64ビット、OS – windows7 64ビット、IE10 – 64ビット
注:私は同じ問題に直面し、私の問題は再インストールするように解決されましたIEDriver – 32ビット、32ビットIEドライバで正常に動作しています。
IE 11はWindows 8.1 VMで低速で実行されていました。IEDriverServer.exe3.5.1.0(x32)を実行していました。IEDriverServer.exe3.5.1.0(x64)に変更することで修正しました。注:3.4.0.0ではこの問題は修正されません。 nativeEvents:falseは何も変更しませんでした。ドライバーはPATHにありますが、そうでない場合はどうなるかわかりません。
リリースノートv2.47.0.1:
( https://raw.githubusercontent.com/SeleniumHQ/Selenium/master/cpp/iedriverserver/CHANGELOG )
したがって、32ビットを使用するか、コンテンツのレンダリングを64ビットに変更する必要があります
Python 3.6およびSelenium 3.14を使用する開発者向けにこのソリューションを投稿します。
私の場合、関連するIE設定はグループポリシーによってロックダウンされているため、IE設定への変更を必要とするソリューションは機能しません。
特定の環境で遅いsendkeyを修正するために変更する必要があるオプション設定は1つだけでした(Windows 7 x64、IE 11.0.9600ロックダウン、Python 3.6、Selenium 3.14.1):
from Selenium import webdriver
from Selenium.webdriver.ie.options import Options
opts = Options()
opts.require_window_focus = True
driver = webdriver.Ie(options=opts)