Impossible de lancer le navigateur IE avec Selenium2 (Webdriver) avec Java

Je ne peux pas lancer le navigateur IE pour exécuter mes tests automatisés de selenium écrits en Java. J’utilise Windows 7 et IE 9. Voici mon code:

Veuillez trouver la pièce jointe. entrer la description de l'image ici

public class GoogleNews { private WebDriver driver; private Ssortingng baseUrl; private SsortingngBuffer verificationErrors = new SsortingngBuffer(); 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); } } 

Il doit définir le même niveau de sécurité dans toutes les zones. Pour ce faire, suivez les étapes ci-dessous:

  1. Ouvrez IE
  2. Allez dans Outils -> Options Internet -> Sécurité
  3. Définissez toutes les zones (Internet, Intranet local, Sites de confiance, Sites restreints) sur le même mode protégé, activé ou désactivé.

Enfin, définissez le niveau de zoom sur 100% en cliquant avec le bouton droit sur l’engrenage situé dans le coin supérieur droit et en activant la barre d’état. Le niveau de zoom par défaut est maintenant affiché en bas à droite.

Eh bien, comme l’indique la trace de la stack, vous devez définir les parameters du mode protégé sur les mêmes pour toutes les zones d’IE. Lisez le pourquoi ici: http://jimevansmusic.blogspot.in/2012/08/youre-doing-it-wrong-protected-mode-and.html

et rapidement comment à partir du même lien: “Dans IE, à partir du menu Outils (ou de l’icône représentant un engrenage dans la barre d’outils des versions ultérieures), sélectionnez” Options Internet “. Allez dans l’onglet Sécurité. chaque zone, vous devriez voir une case à cocher intitulée “Activer le mode protégé.” Définissez la valeur de la case à cocher sur la même valeur, soit cochée ou décochée, pour chaque zone ”

L’extrait suivant du code Java WebDriver devrait fonctionner pour lancer IE. Le code ignorera la configuration des parameters du mode protégé pour toutes les zones du navigateur 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/"); 

Téléchargez IEDriverServer et extrayez-le à l’emplacement de votre choix et définissez le chemin absolu (dans l’exemple ci-dessus, il s’agit de “D: \ Ripon Al Wasim \ IEDriverServer.exe”)

  1. Allez dans IE->Tools->Internet Options .
  2. Allez dans l’onglet Sécurité.
  3. Activer / désactiver le mode protégé pour tous (Internet, intranet local, sites de confiance et sites restreints).

Pour résoudre ce problème, vous devez faire deux choses:

  1. Vous devrez définir une entrée de registre sur l’ordinateur cible afin que le pilote puisse maintenir une connexion à l’instance d’Internet Explorer créée.

  2. Modifiez quelques parameters du navigateur Internet Explorer sur cette machine (où vous souhaitez exécuter l’automatisation).

1 . Définition de la clé / entrée du registre:

  • Pour définir une clé de registre ou une entrée, vous devez ouvrir “Éditeur du registre”.

  • Pour ouvrir “Éditeur du Registre”, appuyez sur la touche du bouton Windows + la touche alphabétique qui ouvrira “Exécuter la fenêtre”, puis tapez “regedit” et appuyez sur Entrée.

  • Ou appuyez sur la touche Windows et entrez “regedit” au menu Démarrer et appuyez sur Entrée. Maintenant, en fonction de votre type de système d’exploitation, le bit 32/64 doit suivre les étapes correspondantes.

Windows 32 bits: accédez à cet emplacement – “HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl” et recherchez la clé “FEATURE_BFCACHE”.

Windows 64 bits: accédez à cet emplacement – HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl et recherchez la clé “FEATURE_BFCACHE”. Veuillez noter que la sous-clé FEATURE_BFCACHE peut être ou ne pas être présente et doit être créée si elle n’est pas présente.

Important: Dans cette clé, créez une valeur DWORD nommée iexplore.exe avec la valeur 0.

Réglage du registre

2. Modifier les parameters du navigateur Internet Explorer:

  • Cliquez sur le bouton de réglage et sélectionnez “Options Internet” .

  • Dans la fenêtre “Options Internet”, allez dans l’onglet “Sécurité”

  • Maintenant, sélectionnez l’option “Internet” et décochez la case “Activer le mode protégé” et modifiez le “niveau de sécurité” à faible.

  • Maintenant, sélectionnez l’option “Intranet local” et modifiez le “niveau de sécurité” à faible.

  • Sélectionnez maintenant l’option “Sites de confiance” et modifiez le niveau de sécurité.

options Internet

  • Maintenant, cliquez sur le bouton “Appliquer” , un message d’avertissement peut apparaître. Cliquez sur le bouton “OK” pour un avertissement, puis sur le bouton “OK” dans la fenêtre Options Internet.

Enregistrer les paramètres

  • Après cela, redémarrez le navigateur.

Plutôt que d’utiliser le chemin absolu pour IEDriverServer.exe, il est préférable d’utiliser le chemin d’access relatif conformément au projet.

  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"); 

Pour NighwatchJS utiliser:

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

Avant de commencer avec Internet Explorer et Selenium Webdriver Considérez ces deux règles importantes.

  • Le niveau de zoom: Doit être réglé par défaut (100%) et
  • Les parameters de la zone de sécurité: devraient être les mêmes pour tous. Les parameters de sécurité doivent être définis en fonction des permissions de votre organisation.

Comment définir cela?

  • Allez simplement dans Internet Explorer, faites les deux choses manuellement. C’est tout. Pas de secret
  • Faites-le à travers votre code.

Méthode 1 :

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); //Identify your elements and go ahead testing... 

Cela ne montrera définitivement aucune erreur et le navigateur s’ouvrira et naviguera également vers l’URL.

MAIS Cela n’identifiera aucun élément et par conséquent vous ne pouvez pas continuer.

Pourquoi? Parce que nous avons supprimé l’erreur et demandé à IE d’ouvrir cette URL. Cependant, Selenium n’identifiera les éléments que si le zoom du navigateur est à 100%. défaut. Donc, le code final serait

Méthode 2 La méthode robuste et complète :

 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... 

J’espère que cela t’aides. Faites-moi savoir si des informations supplémentaires sont nécessaires.