web-dev-qa-db-ja.com

IE 11の遅いsendkeysをSelenium Webdriver 3.0.0で修正する方法は?

Firefoxとchromeは正常に動作していますが、IE 11を使用すると、sendkeysが非常に遅くなります。この問題をどのように修正しますか?

私の環境:

  • 実行中IE 11.103
  • オペレーティングシステムWindows 10
  • 私はEclipse(バージョン:Neonリリース(4.6.0))をJava 1.8で使用しています
  • Selenium Webdriver 3.0.0
6
Shaun Cromie

私の環境:WIN 10、Selenium 3.4、IE64設定:インターネットオプション→詳細設定→セキュリティ→Enhanced拡張保護モードの64ビットプロセスを有効にする

5
Miś Koala

32bit版をダウンロードして使って修正しました。解決に役立ったスレッド

https://github.com/seleniumhq/Selenium-google-code-issue-archive/issues/5116

3

オンラインでたくさん読んで実験した後

  1. Webドライバーを指すようにパスを設定する必要がありました。[コンピューター]を右クリックし、[システムの詳細設定]、[環境変数]、[パス]の順に選択して、[編集]をクリックしました。ここで、IEDriverServer.exeへのパスを追加します。たとえば、「C:\ Eclipse\webdriver\IEDriverServer.exe」でした。私はあなたのPCを再起動することをお勧めします

  2. 32ビットを実行する必要がありますIE WEBドライバー http://Selenium-release.storage.googleapis.com/index.html 3.0をダウンロードしました

  3. ここに、私に世界を変えた金の部分があります。 IEを管理者として実行するように設定します。IEショートカットを右クリックしてオプションを選択し、ショートカットタブで詳細ボタンをクリックして[管理者として実行]チェックボックスをオンにします。IEを再起動します

  4. IEを開いたら、ツール、インターネットオプション、セキュリティタブの順に進みます。ローカルイントラネットと信頼済み​​サイトで[保護モ​​ードを有効にする]をオフにしました。IEを再起動してください。

  5. 私は次の望ましい機能を使用しました(インターネットでこれを見つけました)

        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ではアサーションは失敗しますが、最初のページで送信キーを使用できました。

3
Shaun Cromie

私は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文字)追加の設定は必要ありません

1
admin

より良い解決策:

注意:このソリューションを実行する前に、すべてのIE設定をリセットしました。また、最初の回答では、はるかに古いバージョンのIEドライバを実行していました。

  1. 最新のIEドライバーをダウンロードします-バージョン3.4 32ビットをダウンロードしました(64ビットはテスト中にまだ低速でした) http://Selenium-release.storage.googleapis .com/index.html?path = 3.4 /

  2. IE設定2.1に変更する必要があります。ツール->インターネットオプション->セキュリティに移動します。すべてのゾーンを同じ保護モードに設定します。有効または無効にする必要はありません。次のようにしてください。- http://seleniumquery.github.io/images/ie-driver-protected-mode-disable.png

  3. 今あなたのコードでこれを追加してください:

    public static void runInternetExplorer() {
    
    System.setProperty("webdriver.ie.driver", "C:\\Eclipse\\webdriver\\IE\\IEDriverServer.exe");
    
    WebDriver webDriver = new InternetExplorerDriver();
    new browser (webDriver);
    

    }

これを実行すると、非常にうまく実行されます。このソリューションが機能しない場合は、以前の回答をそのままにしておきます。

1
Shaun Cromie

Rubyおよびwebdiriverバージョン3+に関する注意

ドキュメントには、native_events IEパラメータを使用した例が含まれていますが、コンソールの開始点で記述されています。

実際、正しいパラメーター名はnativeEventです。

セットnativeEvent = false
そしてwebdriverは遅いネイティブクリックシミュレーションではなく高速JSを使用します。

0
Artru

IEDriver 32ビット(64ビットから)に変更すると、この問題は解決しました。 IE 11、Windows 7、Selenium 3.4。

0

IE11では、テストの再生中にテキストフィールド(送信キー)にデータを入力するのが遅すぎます。

以下はシステム情報です。 IEDriver – 64ビット、OS – windows7 64ビット、IE10 – 64ビット

注:私は同じ問題に直面し、私の問題は再インストールするように解決されましたIEDriver – 32ビット、32ビットIEドライバで正常に動作しています。

0
kavita

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にありますが、そうでない場合はどうなるかわかりません。

0
BlazzedTroll

リリースノートv2.47.0.1:

  • IEでのCookie操作の高速エラーを有効にしました。 IEドライバのCookie処理のリファクタリングにより、64ビットIEドライバおよびIE 10および64ビットWindowsで実行されている11。キーストロークの送信とスクリーンショットの作成の場合と同様に、IEでCookieを取得および設定するためにWindowsフックプロシージャが使用されます。つまり、IE 10 and 11コンテンツレンダリングプロセスがまだ32ビットである64ビットWindowsでは、Cookieを操作するために32ビットIEDriverServer.exeを使用する必要があります 。このコミットにより、32ビットバージョンのIE(またはその逆)に対して64ビットドライバを使用してCookieを設定または取得しようとすると、例外がスローされますが、特に、これは、64ビットWindowsでIE 10または11で64ビット実行可能ファイルを誤って使用しようとしたユーザーに影響します。

https://raw.githubusercontent.com/SeleniumHQ/Selenium/master/cpp/iedriverserver/CHANGELOG

したがって、32ビットを使用するか、コンテンツのレンダリングを64ビットに変更する必要があります

0
locika

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)
0
gb96