2014-05-20 13 views
11

Ich kann Selenium keine Elemente mit dem Internet Explorer-Treiber identifizieren, unabhängig von der verwendeten Seite oder dem Auswahltyp.Keine Elemente in Selen mit dem Internet Explorer-Treiber finden

String iedriver = "C:\\selenium-server\\IEDriverServer.exe"; 
System.setProperty("webdriver.ie.driver", iedriver); 
WebDriver driver = new InternetExplorerDriver(); 
driver.get("http://www.google.com"); 
WebElement element = driver.findElement(By.xpath("//body")); 

Auswahl von XPath gibt org.openqa.selenium.InvalidSelectorException: Der XPath-Ausdruck '// body' nicht ausgewertet werden kann oder nicht in einem WebElement notresult. Andere Auswahltypen auch fehlschlagen:

WebElement element = driver.findElement(By.cssSelector("body")); 

oder

WebElement element = driver.findElement(By.tagName("body")); 

oder

WebElement element = driver.findElement(By.name("q")); 

von CSS-Selektor, Name oder Tag Name führt immer in org.openqa.selenium.NoSuchElementException

Alle Selektionen funktionieren einwandfrei. W Mit Firefox-Treiber, Chrome-Treiber und sogar Html Unit Driver.

Der Browser startet ordnungsgemäß und die Seite wird erwartungsgemäß geladen. driver.getCurrentUrl(); und driver.getPageSource(); geben Sie die erwarteten Werte zurück.

habe ich versucht, expliziter und impliziter wartet Einführung vor Auswahl eines Elements, aber ohne Wirkung, indem

Thread.sleep(10000); 

oder

WebDriverWait(driver,60).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//body"))); 

auch versucht, durch den Code Schritt zu warten, bis manuell für Elemente angezeigt werden, .

Andere Dinge, die ich versuchte, enthalten 1) die Sicherheitseinstellungen auf dem gleichen Niveau in allen Zonen 2) Sperren erweiterte geschützte Modus 3) Setzen des FEATURE_BFCACHE in der registery Einstellung

Ich bin mit Selen und IEDriverServer Versionen 2.41. Das Problem wird sowohl lokal als auch remote beobachtet. Die Umgebung ist auf Windows 7 64-Bit mit IE10 64-Bit und IEDriverServer 64-Bit. Das gleiche Problem wurde bei IE11 32-Bit mit IEDriverServer 32-Bit beobachtet. Ich habe www.google.com hier als öffentlich sichtbaren Test verwendet, aber das Problem wird auch auf unserer internen Website beobachtet.

+2

Es ist nicht notwendig, "die Sicherheitseinstellungen in allen Zonen auf die gleiche Stufe zu stellen". Es ist jedoch * notwendig, die [Geschützten Moduseinstellungen] (http://jimevansmusic.blogspot.com/2012/08/youre-doing-it-wrong-protected-mode-and.html) auf denselben Wert zu setzen in allen Zonen. – JimEvans

+0

Das ist ein guter Vorschlag, aber ich habe den Protected Mode bereits auf die gleichen Einstellungen eingestellt. Ich habe es mit allen Zonen mit geschütztem Modus und ohne aktiviert. – nelziq

+1

Ich habe sogar versucht mit INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, aber es machte keinen Unterschied. – nelziq

Antwort

8

Ich konnte das Problem lösen, indem ich die Sicherheitsstufe in "Internetoptionen" in der Internetzone von "Hoch" auf "Mittelhoch" oder "Mittel" herabsetzte.

16

Für diejenigen, die das Problem auf IE11 erfahren, hier ist warum: Microsoft veröffentlicht Update KB3025390 über Windows Update [1] als Teil seiner normalen "Patch Dienstag" Update-Zyklus. Für die meisten Benutzer wird dieses Update ohne Benutzerinteraktion heruntergeladen und installiert. Dieses Update unterbricht den IE-Treiber, wenn es mit IE11 verwendet wird.

https://groups.google.com/forum/m/#!topic/selenium-users/TdY_rRNF-gw

Das Update, entfernen Sie das Update. Es gibt derzeit kein Selenium-Update, um das Problem zu umgehen.

+0

Vielen Dank, funktioniert gut für mich! –

+0

Siehe auch: https://code.google.com/p/selenium/issues/detail?id=8302 – dmansfield

+0

Diese Antwort ist nicht mehr up2date: siehe diese Antwort, wie Sie es heute lösen: https://stackoverflow.com/ a/32251252/1220560 – morgwai

5

Was für mich gearbeitet wurde die Lösung am Ende der Seite bemerkt: Running local HTML pages dieses

zu beheben, gehen Sie bitte auf „Internetoptionen“ im Menü Extras (oder das Zahnrad-Symbol in neueren Versionen) . Öffnen Sie die Registerkarte Erweitert. Scrollen Sie nach unten zu "Sicherheit" und wählen Sie "Aktive Inhalte in Dateien auf dem Computer ausführen" aus.

Ein Neustart war dann erforderlich.

+0

Beste Lösung - Danke –

+0

Es funktioniert auch für mich, vielen Dank. –

4

Wenn Sie Ihre IDE im Admin-Modus ausführen, bevor Sie den Test ausführen, wird das Problem gelöst. Stellen Sie sicher, dass die IDE mit Administratorrechten ausgeführt wird.

0

Gehen Sie zu IE-Einstellungen> Registerkarte Sicherheit> Geschützten Modus für alle Zonen deaktivieren. Diese Aktivität hat mein Problem behoben.

Verwandte Themen