Je ne parviens pas à lancer le navigateur IE pour exécuter mes tests automatisés Selenium écrits en Java. J'utilise Windows 7 et IE 9. Voici mon code:
Veuillez trouver la pièce jointe.
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);
}
}
Il doit définir le même niveau de sécurité dans toutes les zones. Pour ce faire, suivez les étapes ci-dessous:
Enfin, définissez le niveau de zoom sur 100% en cliquant avec le bouton droit de la souris sur la roue située 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.
Comme l'indique la trace de la pile, vous devez définir les paramètres du mode protégé sur Identique pour toutes les zones d'Internet Explorer. Lisez le pourquoi ici: http://jimevansmusic.blogspot.in/2012/08/youre-doing-it-wrong-protected-mode-and.html
et un rapide comment utiliser le même lien: "Dans Internet Explorer, dans le menu Outils (ou l’icône représentant une roue dentée dans la barre d’outils des versions ultérieures), sélectionnez" Options Internet ". Allez à l’onglet Sécurité. Au bas de la boîte de dialogue Pour chaque zone, une case à cocher intitulée "Activer le mode protégé" doit s'afficher. Définissez la valeur de la case à cocher sur la même valeur, cochée ou non, pour chaque zone "
L'extrait suivant de WebDriver Java devrait fonctionner pour lancer IE. Le code ignorera la configuration des paramètres 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, puis définissez le chemin absolu (dans l'exemple ci-dessus, il s'agissait de "D:\Ripon Al Wasim\IEDriverServer.exe").
Pour résoudre ce problème, vous devez faire deux choses:
Vous devrez définir une entrée de registre sur l'ordinateur cible pour que le pilote puisse conserver une connexion à l'instance d'Internet Explorer qu'il crée.
Modifiez quelques paramètres du navigateur Internet Explorer sur cette machine (où vous souhaitez exécuter l’automatisation).
1. Définition de la clé de registre/entrée:
Pour définir la clé de registre ou l'entrée, vous devez ouvrir "Éditeur du registre".
Pour ouvrir "Éditeur de registre", appuyez sur le bouton Windows + r de la touche alphabétique qui ouvrira "Run Window" puis tapez "regedit" et appuyez sur entrée.
Ou Appuyez sur la touche Windows et entrez "regedit" dans le menu Démarrer, puis appuyez sur Entrée. Maintenant, en fonction du type de votre système d'exploitation, suivez les étapes correspondantes selon que 32/64 bits ou.
Windows 32 bits: allez à cet emplacement - "HKEY_LOCAL_MACHINE\LOGICIEL\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 devrait être créé s'il n'est pas présent.
Important: A l'intérieur de cette clé, créez une valeur DWORD nommée iexplore.exe avec la valeur 0.
2. Modifier les paramètres du navigateur Internet Explorer:
Cliquez sur le bouton de réglage et sélectionnez "Options Internet" .
Dans la fenêtre "Options Internet", accédez à l'onglet "Sécurité" .
Sélectionnez à présent l'option "Internet" , décochez la case "Activer le mode protégé" et définissez le "Niveau de sécurité" sur Bas.
Sélectionnez maintenant l'option "Intranet local" et définissez le "Niveau de sécurité" sur Bas.
Sélectionnez maintenant l'option "Sites de confiance" et définissez le "Niveau de sécurité" sur Bas.
IE->Tools->Internet Options
.Voulait partager le code réel car peu de personnes pourraient encore être confondues sur la façon de l’implémenter. C’est pour l’implémentation C # NUNIT. Vous devez le faire car votre entreprise pourrait ne pas vous permettre de modifier les paramètres de sécurité par défaut pour des raisons évidentes. Bonne chance!
InternetExplorerOptions options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
options.IgnoreZoomLevel = true;
driver = new
InternetExplorerDriver("C:\\Users\\stdd\\Desktop\\SLL\\SLLAutomation" +
"\\Clysis\\STGSearch\\STGClaSearch\\Driver\\", options);
driver.Manage().Window.Maximize();
Plutôt que d’utiliser un chemin absolu pour IEDriverServer.exe, il est préférable d’utiliser un chemin 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, utilisez:
"ie" : {
"desiredCapabilities": {
"browserName": "internet Explorer",
"javascriptEnabled": true,
"acceptSslCerts": true,
"allowBlockedContent": true,
"ignoreProtectedModeSettings": true
}
},
Méthode 1:
Capacités 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...
Cela va définitivement ne montrer aucune erreur et le navigateur s'ouvrira et naviguera également vers l'URL.
MAIS Ceci ne va identifier aucun élément et par conséquent vous ne pouvez pas continuer.
Pourquoi? Parce que nous avons simplement supprimé l'erreur et demandé à IE d'ouvrir et d'obtenir cette URL. Toutefois, Selenium n'identifiera les éléments que si le zoom du navigateur est de 100%, valeur par défaut. Le code final serait donc
Méthode 2 La méthode de preuve 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 d'autres informations sont nécessaires.