1

Ich bin mit dem IE-Treiber mit IE11, Für einige Elemente Click Methode wird nur ein Element auswählen, es wird nicht die Wirkung des Click() tun. Mit ChromeDriver und FirefoxDriver das gleiche Skript funktioniert gut.Selen WebDriver - Klicken Sie() -Methode nicht mit IE-Treiber

Ich habe gesetzt Treiberfähigkeiten wie unten

DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); 
caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
caps.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true); 
caps.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, false); 
caps.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING, false); 
caps.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false); 

ich einige Lösungen gefunden Links auf folgende, aber immer noch gleiche Problem gegenüber.

Selenium WebDriver Click issue in Internet Explorer

Selenium WebDriver on IE 9, on clicking, links are flashing as if some click event was not completely handled

Selenium 2.0b3 IE WebDriver, Click not firing

+0

Welchen 'idiverserver' verwenden Sie' 64-bit' oder '32-bit' ?? und was passiert, wenn Sie mit 'WebElement.click()' 'klicken? Gibt es irgendeine Ausnahme? –

+0

Ich benutze 32-Bit-Treiber, und keine Ausnahmen gefunden, wenn ich element.click() –

+0

verwenden Ist dieses Element manuell an IE-Browser korrekt anklickbar? –

Antwort

2

Es ist schwer zu sagen, warum auf IE es nicht anklickbar ist, kann seine Gestaltung Problem sein.

Wenn Sie jede Möglichkeit versucht, aber nichts bekommen versuchen Erfolg JavascriptExecutor als eine alternative Lösung wie unten: -

((JavascriptExecutor)driver).executeScript("arguments[0].cli‌​ck()", yourElement); 

Hinweis: - Die JavaScript Injektions HTMLElement.click() sollten nicht in einem Test verwendet werden Kontext. Es vereitelt den Zweck des Tests. Erstens, weil es nicht alle Ereignisse wie ein echtes click (focus, blur, mousedown, mouseup...) generiert und zweitens, weil es nicht garantiert, dass ein echter Benutzer mit dem Element interagieren kann. Aber um von diesem Problem loszukommen, können Sie es als alternative Lösung betrachten.

+1

ja .. !! es funktioniert gut für mich. Danke –

+1

Ich bin in der Lage, mit JavascriptExecutor klicken, aber mit dieser Methode muss ich separate Klick-Methode schreiben, weil ich denke, mit JavascriptExecutor für jeden Klick ist kein guter Weg. –

+0

Ja, Sie haben Recht, sollten Sie separate Klick-Methode als 'clickByJs()' .. :) –

Verwandte Themen