webentwicklung-frage-antwort-db.com.de

Selenium WebDriver auf IE11

Ich verwende WebDriver zur Automatisierung der Regressionssuite unserer Webapp, ich habe versucht, meine Testskripte mit IE11 zum Laufen zu bringen, hatte aber keinen Erfolg.

Ich verstehe, dass IEDriverServer.exe WebDriver derzeit nicht unterstützt, und das Problem erfordert die Zusammenarbeit von Microsoft. Ich habe die in den Antworten zu Selenium-Problem Nr. 6511 beschriebenen Schritte ausprobiert.

  1. (Nur für IE 11) müssen Sie auf dem Zielcomputer einen Registrierungseintrag festlegen, damit der Treiber eine Verbindung zu der Instanz von Internet Explorer aufrechterhalten kann, die er erstellt. Bei 32-Bit-Windows-Installationen muss der Schlüssel angegeben werden Überprüfen Sie in dem Registrierungseditor HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE.

    Bei 64-Bit-Windows-Installationen lautet der Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE. Beachten Sie, dass der FEATURE_BFCACHE-Unterschlüssel möglicherweise vorhanden ist oder nicht und sollte erstellt werden, wenn er nicht vorhanden ist. Erstellen Sie in diesem Schlüssel einen DWORD-Wert namens iexplore.exe mit dem Wert 0.)

  2. Die Einstellungen für den geschützten Modus sind für alle Zonen gleich

  3. Der erweiterte geschützte Modus ist deaktiviert.

Aber immer noch, wenn ich meine Automatisierungsskripte in IE11 ausführte, wird der Browser geöffnet und die Ausnahme wird überschritten

org.openqa.Selenium.ElementNotVisibleException: Received a JavaScript error attempting to 
click on the element using synthetic events.We are assuming this is because the element 
isn't displayed, but it may be due to other problems with executing JavaScript. (WARNING:
The server did not provide any stacktrace
information)

Kann mir bitte jemand bei der Lösung dieses Problems helfen? Ich muss meine Automatisierungsskripte in IE11 ausführen.

Versionsdetails:

  1. Selen-2,41,0

  2. InternetExplorerDriver-Server (32-Bit) 2.40.0.0

  3. Windows 7 - 32 Bit

11
mra419

Es ist ein bisschen schwierig und nervig, aber möglich.

Sie haben die erforderlichen Einstellungen für IE bereits erwähnt. Der Cache speichert auch den Inhalt zwischen den Läufen/der Verwendung und Sie müssen den Cache und die persönlichen Einstellungen löschen. Ich habe festgestellt, dass die folgenden Punkte dazu beitragen, dass die Instanz beim Start sauber ist. Dies sind Optionen, die beim Instanziieren des WebDriver an die Instanz IE übergeben werden.

Lokal:

    var options = new InternetExplorerOptions();
    options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
    //Clean the session before launching the browser
    options.EnsureCleanSession = true;

Remote:

    capabilities = DesiredCapabilities.InternetExplorer();
    capabilities.SetCapability("ie.ensureCleanSession", true);

Möglicherweise funktionieren sowohl diese als auch die von Ihnen erwähnten IE - Sicherheitseinstellungen für Sie.

7
mutt

Microsoft hat den IE11-Webtreiber veröffentlicht

http://www.Microsoft.com/de-de/download/details.aspx?id=44069

4
TyMayn

update für 2017:

  case "remote5555iexplorer" => {
    println(" load web-driver: remote5555iexplorer")

    val dc = DesiredCapabilities.internetExplorer()
    dc.setJavascriptEnabled(true)
     dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true)
    dc.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true)
    dc.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true)

    dc.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false);

    remote = new RemoteWebDriver(new URL("http://localhost:5555/"), dc) 
    //remote = new InternetExplorerDriver(dc)

  }

iexplorer: 11.0.9.9600.17843 Updateversion: 11.0.20

libraryDependencies + = "org.seleniumhq.Selenium"% "Selen-ie-driver"% "3.3.1"

webtreiber: IEDriverServer.exe 3.2.0.0 (64-Bit)

befehl zum Ausführen des Web-Treibers: IEDriverServer.exe/LOG-LEVEL = DEBUG

0
nexoma

es dreht sich alles um die gewünschten Funktionen. Verwenden Sie in dieser Zeile Ihre gewünschten Funktionen für den IE Treiber und er wird sich nicht wiederholen ... und es hat für mich funktioniert.

            ieCapabilities.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL,false);
0