web-dev-qa-db-fra.com

Impossible de lancer IE avec Selenium2 (Webdriver) avec Java

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.enter image description here

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);
    }
}
55
Lingaraj R M

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

  1. Ouvrir 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é, sans importance.

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.

134
Jon Carlstedt

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 "

19
niharika_neo

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

12
Ripon Al Wasim

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 pour que le pilote puisse conserver une connexion à l'instance d'Internet Explorer qu'il crée.

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

Registry Setting

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.

Internet Options

  • Maintenant, cliquez sur "Appliquer" , un avertissement peut apparaître, cliquez sur le bouton "OK" pour l'avertissement, puis sur le bouton "OK" des Options Internet. fenêtre.

Save Settings

  • Après cela, redémarrez le navigateur.
3
Pritam Maske
  1. Aller à IE->Tools->Internet Options.
  2. Allez dans l'onglet Sécurité.
  3. Activez/désactivez le mode protégé pour tous (Internet, Intranet local, Sites de confiance et Sites sensibles.)
3
adi_will

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();
2
Heike

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
  }
},
2
R.S

Avant de commencer avec Internet Explorer et Selenium Webdriver Prenez en compte ces deux règles importantes.

  • Le niveau de zoom: doit être défini sur la valeur par défaut (100%) et
  • Les paramètres de la zone de sécurité: doivent être identiques pour tous. Les paramètres de sécurité doivent être définis en fonction des autorisations de votre organisation.

Comment régler cela?

  • Allez simplement dans Internet Explorer, faites les deux choses manuellement. C'est ça. Pas de secret.
  • Faites-le avec votre code.

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.

0
NiNa