2012-01-16 3 views
8

Ho un tasto su una pagina web che WebDriver non scatterà quando sono in esecuzione tramite IE - ho provato le soluzioni alternative al di sotto, ma senza fortuna -Soluzioni alternative per Selenio pulsante non cliccando con InternetExplorerDriver

Cliccando via JavaScript:

((JavascriptExecutor) driver).executeScript("$(arguments[0]).click()", webElement) 

Uso SendKeys:

webElement.SendKeys(keys.Enter) 

utilizzando l'azione Builder

Actions test = new Actions(driver); 
     test.moveToElement(webElement); 
     test.clickAndHold(); 
     test.release(); 
     test.build(); 
     test.perform(); 

Assicurandosi che la finestra è quella attiva, poi cliccando sul oggetto padre, allora l'oggetto stesso

Il problema è che nessuno di loro lavoro. Ho controllato Firefox e Chrome e lo script funziona correttamente. Ho confermato che l'elemento viene trovato quando si utilizza IE. Ci sono altre soluzioni alternative che posso provare?

+0

Avete una pagina di esempio in cui questo problema viene riprodotto? Potrebbe valere la pena di archiviarlo come un bug se funziona correttamente con gli altri driver. –

+0

Purtroppo può essere riprodotto solo su un'app interna. Sono riusciti a risolvere il problema passando al focus della finestra, forzando lo scorrimento, facendo clic sull'elemento padre, facendo clic sull'elemento e quindi inviando Javascript. Ovviamente esagerare da qualche parte, ma è solo felice che funzioni. – Dave

+3

Credo che la finestra di IE debba essere in primo piano e in primo piano affinché molte azioni funzionino correttamente. Almeno questa è stata la mia esperienza con esso. –

risposta

1

Se il pulsante è un pulsante di invio modulo, è possibile utilizzare: webElement.submit() in un altro campo del modulo.

4

Sembra che tu stia utilizzando lo stile JQuery per fare clic ... il normale clic in stile javascript dovrebbe funzionare.

Prova questo:

((JavascriptExecutor) driver).executeScript("arguments[0].click();", webElement) 

ho sempre trovato successo con quanto segue per fare clic su un elemento in IE.

  1. Se è una casella di controllo/radio: webElement.click();
  2. cliccabile elemento input: webElement.sendKeys("\n");
  3. Per gli altri elementi, utilizzare quanto sopra detto stile JS clic.
+0

Ti abbraccerei se potessi! – Conner

+0

@Conner - Grazie, hai reso la mia giornata :) – KrishPrabakar