Non è in grado di avviare il browser IE utilizzando Selenium2 (Webdriver) con Java

Non sono in grado di avviare il browser IE per eseguire i miei test automatici sul selenium scritti in Java. Sto usando Windows 7 e IE 9. Di seguito è riportato il mio codice:

Si prega di trovare l’allegato. inserisci la descrizione dell'immagine qui

public class GoogleNews { private WebDriver driver; private String baseUrl; private StringBuffer verificationErrors = new StringBuffer(); ArrayList al = new ArrayList(); @Before public void setUp() throws Exception { //driver = new FirefoxDriver(); driver =new InternetExplorerDriver(); baseUrl = "https://news.google.co.in/"; } @Test public void testApple() throws Exception { driver.get(baseUrl); } } 

Deve impostare lo stesso livello di sicurezza in tutte le zone. Per fare ciò segui i passaggi seguenti:

  1. Apri IE
  2. Vai su Strumenti -> Opzioni Internet -> Sicurezza
  3. Impostare tutte le zone (Internet, Intranet locale, Siti attendibili, Siti con restrizioni) sulla stessa modalità protetta, abilitato o disabilitato non dovrebbe avere importanza.

Infine, imposta il livello di zoom al 100% facendo clic con il pulsante destro del mouse sull’ingranaggio situato nell’angolo in alto a destra e triggersndo la barra di stato. Il livello di zoom predefinito è ora visualizzato in basso a destra.

Come dice la traccia dello stack, è necessario impostare le impostazioni della modalità protetta sullo stesso per tutte le zone in IE. Leggi il perché qui: http://jimevansmusic.blogspot.in/2012/08/youre-doing-it-wrong-protected-mode-and.html

e un rapido come dallo stesso link: “In IE, dal menu Strumenti (o l’icona ingranaggio nella barra degli strumenti nelle versioni successive), selezionare” Opzioni Internet “. Vai alla scheda Sicurezza. Nella parte inferiore della finestra di dialogo per ogni zona, dovresti vedere una casella di controllo con l’etichetta “Abilita modalità protetta”. Imposta il valore della casella di controllo sullo stesso valore, selezionato o deselezionato, per ogni zona ”

Il seguente frammento di codice Java di WebDriver dovrebbe funzionare per avviare IE. Il codice ignorerà l’impostazione delle impostazioni della modalità protetta per tutte le zone nel browser IE.

 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); File file = new File("D:\\Ripon Al Wasim\\IEDriverServer.exe"); System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); WebDriver driver = new InternetExplorerDriver(capabilities); driver.get("https://www.google.com/"); 

Scarica IEDriverServer ed estrailo nella posizione desiderata e imposta il percorso assoluto (nel mio esempio precedente era “D: \ Ripon Al Wasim \ IEDriverServer.exe”)

  1. Vai a IE->Tools->Internet Options .
  2. Vai alla scheda Sicurezza.
  3. Abilitare / disabilitare la modalità protetta per tutti (Internet, Intranet locale, Siti attendibili e Siti con restrizioni).

Per risolvere questo problema devi fare due cose:

  1. Sarà necessario impostare una voce di registro sul computer di destinazione in modo che il driver possa mantenere una connessione con l’istanza di Internet Explorer creata.

  2. Cambia alcune impostazioni del browser Internet Explorer su quella macchina (dove desideri eseguire l’automazione).

1. Impostazione chiave / voce del Registro di sistema:

  • Per impostare la chiave di registro o la voce, è necessario aprire “Editor del Registro di sistema”.

  • Per aprire “Editor del Registro di sistema” premere il tasto del tasto Windows + il tasto alfabetico R che aprirà “Esegui finestra” e quindi digitare “regedit” e premere invio.

  • Oppure premere il tasto Windows e inserire “regedit” nel menu Start e premere Invio. Ora, a seconda del tipo di sistema operativo, se 32/64 bit segui i passaggi corrispondenti.

Windows 32 bit: vai in questa posizione – “HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl” e controlla la chiave “FEATURE_BFCACHE”.

Windows 64 bit: vai in questa posizione – HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl e controlla la chiave “FEATURE_BFCACHE”. Si noti che la sottochiave FEATURE_BFCACHE potrebbe essere presente o meno, e dovrebbe essere creata se non è presente.

Importante: all’interno di questa chiave, creare un valore DWORD denominato iexplore.exe con il valore 0.

Impostazioni del Registro di sistema

2. Cambia impostazioni del browser Internet Explorer:

  • Fare clic sul pulsante di impostazione e selezionare “Opzioni Internet” .

  • Nella finestra “Opzioni Internet” vai alla scheda “Sicurezza”

  • Ora seleziona l’ opzione “Internet” e deseleziona la casella di controllo “Abilita modalità protetta” e modifica il “Livello di sicurezza” in basso.

  • Ora seleziona l’opzione “Intranet locale” e modifica il “Livello di sicurezza” in basso.

  • Ora seleziona l’opzione “Siti attendibili” e modifica il “Livello di sicurezza” in basso.

Opzioni Internet

  • Ora fai clic sul pulsante “Applica” , apparirà un pop-up di avvertenza fare clic sul pulsante “OK” per avvertire e quindi sul pulsante “OK” nella finestra Opzioni Internet.

Salva le impostazioni

  • Dopo questo riavvia il browser.

Anziché utilizzare il percorso Absolute per IEDriverServer.exe, è meglio utilizzare il percorso relativo in base al progetto.

  DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); File fil = new File("iDrivers\\IEDriverServer.exe"); System.setProperty("webdriver.ie.driver", fil.getAbsolutePath()); WebDriver driver = new InternetExplorerDriver(capabilities); driver.get("https://www.irctc.co.in"); 

Per l’uso di NighwatchJS:

 "ie" : { "desiredCapabilities": { "browserName": "internet explorer", "javascriptEnabled": true, "acceptSslCerts": true, "allowBlockedContent": true, "ignoreProtectedModeSettings": true } }, 

Prima di iniziare con Internet Explorer e Selenium Webdriver Considerare queste due regole importanti.

  • Il livello di zoom: deve essere impostato su predefinito (100%) e
  • Le impostazioni della zona di sicurezza: dovrebbero essere uguali per tutti. Le impostazioni di sicurezza devono essere impostate in base alle autorizzazioni dell’organizzazione.

Come impostare questo?

  • Basta andare su Internet Explorer, fare entrambe le cose manualmente. Questo è tutto. Nessun segreto
  • Fallo attraverso il tuo codice.

Metodo 1 :

Funzionalità DesiredCapabilities = DesiredCapabilities.internetExplorer ();

  capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true); System.setProperty("webdriver.ie.driver","D:\\IEDriverServer_Win32_2.33.0\\IEDriverServer.exe"); WebDriver driver= new InternetExplorerDriver(capabilities); driver.get(baseURl); //Identify your elements and go ahead testing... 

Questo sicuramente non mostrerà alcun errore e il browser si aprirà e navigherà anche all’URL.

MA Questo non identificherà alcun elemento e quindi non puoi procedere.

Perché? Perché abbiamo similmente soppresso l’errore e chiesto ad IE di aprire e ottenere quell’URL. Tuttavia, il selenium identificherà gli elementi solo se lo zoom del browser è al 100%. predefinito. Quindi il codice finale sarebbe

Metodo 2 Il modo efficace e completo :

 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true); System.setProperty("webdriver.ie.driver","D:\\IEDriverServer_Win32_2.33.0\\IEDriverServer.exe"); WebDriver driver= new InternetExplorerDriver(capabilities); driver.get(baseURl); driver.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL,"0")); //Identify your elements and go ahead testing... 

Spero che questo ti aiuti. Fammi sapere se sono necessarie ulteriori informazioni.