Utiliser WebDriver pour automatiser Microsoft Edge

WebDriver vous permet d’automatiser Microsoft Edge en simulant l’interaction utilisateur. Les tests qui utilisent WebDriver présentent certains avantages par rapport aux tests unitaires JavaScript qui s’exécutent dans le navigateur :

  • WebDriver accède aux fonctionnalités et aux informations qui ne sont pas disponibles pour JavaScript exécuté dans les navigateurs.

  • WebDriver simule les événements utilisateur ou les événements au niveau du système d’exploitation plus précisément que les tests unitaires JavaScript.

  • WebDriver gère plusieurs fenêtres, onglets et pages web dans une seule session de test.

  • WebDriver exécute plusieurs sessions de Microsoft Edge sur un ordinateur spécifique.

Cet article fournit des exemples de code brut et des tests non terminés. Cet article ne fournit pas de procédure complète pour bien démarrer avec Selenium WebDriver, mais couvre uniquement les parties spécifiques de Microsoft Edge du processus. Cela inclut l’obtention de Microsoft Edge WebDriver et la définition d’options spécifiques à Microsoft Edge dans le code.

Relation entre WebDriver et d’autres logiciels

Pour automatiser Microsoft Edge avec WebDriver afin de simuler l’interaction utilisateur, vous avez besoin de trois composants :

  • Microsoft Edge.
  • Microsoft Edge WebDriver.
  • Infrastructure de test WebDriver.

La relation fonctionnelle entre ces composants est la suivante :

Technologie Rôle
WebDriver Norme W3C pour un protocole filaire indépendant de la plateforme et du langage. Ce protocole permet aux programmes hors processus d’indiquer à distance le comportement des navigateurs web.
Microsoft Edge WebDriver Implémentation par Microsoft du protocole WebDriver spécifiquement pour Microsoft Edge. Les auteurs de tests écrivent des tests qui utilisent les commandes WebDriver que Microsoft Edge WebDriver reçoit. Microsoft Edge WebDriver est ensuite chargé de communiquer cette commande au navigateur.
Infrastructure de test WebDriver Les auteurs de tests utilisent une infrastructure de test pour écrire des tests de bout en bout et automatiser les navigateurs. Fournit une interface spécifique au langage qui traduit votre code en commandes envoyées à Microsoft Edge WebDriver. Les frameworks de test WebDriver existent pour toutes les plateformes et tous les langages principaux. L’un de ces framework est Selenium WebDriver.
Pilote Explorer Internet Implémentation open source du protocole WebDriver spécifiquement pour internet Explorer. Pour exécuter des tests de bout en bout hérités pour le mode Explorer Internet, nous vous recommandons d’utiliser Internet Explorer Driver.
Microsoft WebDriver (hérité) Pilote précédent spécifique au navigateur pour Microsoft Edge (EdgeHTML), également appelé Version antérieure de Microsoft Edge.

Les sections suivantes décrivent comment bien démarrer avec WebDriver pour Microsoft Edge.

Télécharger Microsoft Edge WebDriver

Pour commencer à écrire des tests automatisés, vérifiez que la version de Microsoft Edge WebDriver que vous installez correspond à la version de votre navigateur, comme suit :

  1. Accédez à edge://settings/help et notez votre version de Microsoft Edge :

    Numéro de build de Microsoft Edge le 15 avril 2021

  2. Accédez à Microsoft Edge WebDriver.

  3. Dans la section Obtenir la dernière version de la page, sélectionnez une plateforme dans le canal qui correspond à votre numéro de version de Microsoft Edge :

    La section Obtenir la dernière version de la page web Microsoft Edge WebDriver

  4. Une fois le téléchargement terminé, extrayez l’exécutable msedgedriver à l’emplacement de votre choix. Ajoutez le dossier où se trouve l’exécutable à votre PATH variable d’environnement.

Vous devez installer à la fois un pilote de navigateur (Microsoft Edge WebDriver) et une infrastructure de test WebDriver (telle que Selenium WebDriver), comme décrit dans Choisir une infrastructure de test WebDriver ci-dessous. Il s’agit de composants distincts.

Choisir une infrastructure de test WebDriver

Après avoir téléchargé Microsoft Edge WebDriver, le dernier composant que vous devez télécharger est une infrastructure de test WebDriver. Les auteurs de tests utilisent les frameworks de test WebDriver pour écrire des tests de bout en bout et automatiser les navigateurs. Une infrastructure de test WebDriver fournit une interface propre au langage qui traduit votre code en commandes exécutées par Microsoft Edge WebDriver dans Microsoft Edge. Les frameworks de test WebDriver existent pour toutes les plateformes et langages principaux, tels que Python, Java, C#, Ruby et JavaScript.

Microsoft Edge WebDriver peut être utilisé avec n’importe quel framework WebDriver. Cet article fournit des instructions sur l’utilisation de l’infrastructure Selenium WebDriver, mais vous pouvez utiliser n’importe quelle bibliothèque, infrastructure et langage de programmation prenant en charge WebDriver.

Selenium WebDriver est une implémentation populaire d’une infrastructure WebDriver. Selenium est une bibliothèque d’automatisation inter-navigateurs indépendante du langage et de test-framework. Cet article utilise Selenium WebDriver uniquement à titre d’exemple, car il répond aux besoins de la plupart des utilisateurs. Si vous utilisez Selenium pour automatiser Microsoft Edge, vous devez utiliser Selenium 4 ; Selenium 3 n’est plus pris en charge.

Pour effectuer les mêmes tâches à l’aide d’une infrastructure de test WebDriver autre que Selenium WebDriver, consultez la documentation officielle de l’infrastructure de votre choix.

Utilisation de Selenium WebDriver

Une infrastructure WebDriver possible que vous pouvez utiliser est Selenium WebDriver, qui fait partie de la suite d’outils Selenium. Selenium WebDriver est une infrastructure de test open source qui peut être utilisée sur n’importe quelle plateforme et fournit des liaisons de langage pour Java, Python 3, C#, Ruby et JavaScript.

Si vous utilisez Selenium pour automatiser Microsoft Edge, vous devez utiliser Selenium 4 ; Selenium 3 n’est plus pris en charge.

Pour obtenir des instructions détaillées sur l’installation de Selenium pour votre langage préféré et votre environnement de développement, consultez la documentation de Selenium sur l’installation d’une bibliothèque Selenium.

Automatiser Microsoft Edge avec WebDriver

Pour automatiser un navigateur à l’aide de WebDriver, vous devez d’abord démarrer une session WebDriver à l’aide d’une infrastructure de test WebDriver. Une session WebDriver est une seule instance d’un navigateur qui est contrôlée par des commandes WebDriver.

Démarrez une session WebDriver pour lancer un nouveau navigateur instance. Le instance du navigateur lancé reste ouvert jusqu’à ce que vous fermiez la session WebDriver.

La section suivante vous guide tout au long de l’utilisation de Selenium 4 pour démarrer une session WebDriver avec Microsoft Edge.

Remarque

Cet article fournit des instructions sur l’utilisation de l’infrastructure Selenium WebDriver, mais vous pouvez utiliser n’importe quelle bibliothèque, infrastructure et langage de programmation prenant en charge WebDriver. Pour accomplir les mêmes tâches à l’aide d’une autre infrastructure, consultez la documentation de l’infrastructure de votre choix.

Automatiser Microsoft Edge

Selenium utilise la EdgeDriver classe pour gérer une session Microsoft Edge. Le code suivant :

  1. Démarre une session Microsoft Edge.
  2. Demande à Microsoft Edge d’accéder à Bing.
  3. Recherche « WebDriver ».
  4. Veille pendant quelques secondes afin que vous puissiez voir les résultats.

Pour commencer à automatiser Microsoft Edge avec WebDriver, copiez et collez l’extrait de code de votre langue préférée :

using OpenQA.Selenium;
using OpenQA.Selenium.Edge;
using System.Threading;

namespace EdgeDriverSample
{
    class Program
    {
        static void Main(string[] args)
        {
            var driver = new EdgeDriver();
            try
            {
                driver.Url = "https://bing.com";

                var element = driver.FindElement(By.Id("sb_form_q"));
                element.SendKeys("WebDriver");
                element.Submit();

                Thread.Sleep(5000);
            }
            finally
            {
                driver.Quit();
            }
        }
    }
}

Gérer et configurer le service Microsoft Edge WebDriver

Lorsque vous créez un EdgeDriver objet pour démarrer une session Microsoft Edge, Selenium lance un nouveau processus Microsoft Edge WebDriver avec lequel l’objet EdgeDriver communique. Le processus Microsoft Edge WebDriver est fermé lorsque vous appelez la méthode de l’objet EdgeDriverQuit . Laisser chaque EdgeDriver objet gérer son propre processus de pilote peut être inefficace si vous avez de nombreux tests, car chaque test doit attendre le lancement d’un nouveau processus de pilote. Au lieu de cela, vous pouvez créer un seul processus Microsoft Edge WebDriver, puis le réutiliser pour plusieurs tests.

Selenium utilise la EdgeDriverService classe pour gérer un processus Microsoft Edge WebDriver. Vous pouvez créer un objet une fois avant d’exécuter EdgeDriverService vos tests, puis passer cet EdgeDriverService objet au constructeur lors de la EdgeDriver création d’un nouvel EdgeDriver objet. Lorsque vous passez un EdgeDriverService au EdgeDriver constructeur, l’objet EdgeDriver utilise ce EdgeDriverService, au lieu d’en créer un.

Vous pouvez également utiliser EdgeDriverService pour configurer les options de ligne de commande pour le processus Microsoft Edge WebDriver, comme indiqué ci-dessous.

L’extrait de code suivant crée un nouveau EdgeDriverService et active une sortie de journal détaillée :

var service = EdgeDriverService.CreateDefaultService();
service.UseVerboseLogging = true;

var driver = new EdgeDriver(service);

Configurer les options Microsoft Edge

Vous pouvez passer un EdgeOptions objet au EdgeDriver constructeur pour configurer des options supplémentaires pour le processus de navigateur Microsoft Edge. La section suivante montre comment utiliser EdgeOptions pour certains scénarios courants. Pour obtenir la liste complète des options prises en charge, consultez Fonctionnalités et EdgeOptions.

Choisir des fichiers binaires de navigateur spécifiques

Vous pouvez démarrer une session WebDriver avec des fichiers binaires Microsoft Edge spécifiques. Par exemple, vous pouvez exécuter des tests à l’aide des canaux de préversion de Microsoft Edge, tels que Microsoft Edge Beta, Dev ou Canary.

var options = new EdgeOptions();
options.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe";

var driver = new EdgeDriver(options);
Passer des arguments de ligne de commande supplémentaires

Vous pouvez utiliser EdgeOptions pour configurer les arguments de ligne de commande qui seront passés au processus du navigateur Microsoft Edge lors de la création d’une session. Par exemple, vous pouvez configurer le navigateur pour qu’il s’exécute en mode sans tête.

var options = new EdgeOptions();
options.AddArgument("headless");

var driver = new EdgeDriver(options);

Autres options d’installation de WebDriver

Docker

Si vous utilisez Docker, exécutez la commande suivante pour télécharger une image préconfigurée sur laquelle Microsoft Edge et Microsoft Edge WebDriver sont préinstallés.

docker run -d -p 9515:9515 mcr.microsoft.com/msedge/msedgedriver

Pour plus d’informations, consultez le conteneur msedgedriver sur Docker Hub.

Application Guard

Les sites approuvés qui utilisent Protection d'application Microsoft Defender peuvent être automatisés à l’aide de Microsoft Edge WebDriver. Protection d'application Microsoft Defender est également appelé Protection d'application, en abrégé.

Les sites non approuvés qui utilisent Protection d'application ne peuvent pas être automatisés ou manipulés à l’aide de Microsoft Edge WebDriver. Protection d'application lance des sites non approuvés dans un conteneur, et ce conteneur n’expose pas le port de débogage distant dont Microsoft Edge WebDriver a besoin pour communiquer avec le site.

Votre administrateur d’entreprise définit les sites de confiance, y compris les ressources cloud et les réseaux internes. Les sites qui ne figurent pas dans la liste des sites approuvés sont considérés comme non approuvés. Microsoft Edge WebDriver peut automatiser les fenêtres InPrivate et les sites dans la liste des sites approuvés.

Pour plus d’informations sur Protection d'application, consultez :

Refuser la collecte des données de diagnostic

Par défaut, Microsoft Edge WebDriver envoie des données de diagnostic telles que la status de la commande New Session WebDriver à Microsoft. Pour désactiver la collecte de données de diagnostic pour Microsoft Edge WebDriver, définissez la variable d’environnement sur MSEDGEDRIVER_TELEMETRY_OPTOUT1. Pour plus d’informations sur les données collectées par Microsoft Edge WebDriver, consultez le livre blanc sur la confidentialité de Microsoft Edge.

Microsoft WebDriver hérité pour EdgeHTML

Microsoft WebDriver est l’implémentation WebDriver héritée de Microsoft Edge basée sur EdgeHTML. Microsoft WebDriver a été distribué en tant que composant Windows facultatif, car l’ancienne version de Microsoft Edge (EdgeHTML) a été mise à jour avec le système d’exploitation. Microsoft WebDriver n’est pas compatible avec les dernières versions Chromium de Microsoft Edge. Microsoft WebDriver est toujours disponible pour les développeurs qui ont écrit des tests basés sur WebDriver pour les applications UWP, car ils s’appuient sur EdgeHTML, mais Microsoft WebDriver n’est plus recommandé.

Consultez WebDriver (EdgeHTML).

Résolution des problèmes

Il s’agit de considérations relatives à la résolution des problèmes lors de l’utilisation de WebDriver pour automatiser Microsoft Edge.

Stratégie de disponibilité des outils de développement

Si votre administrateur informatique a défini la stratégie DeveloperToolsAvailability sur 2, Microsoft Edge WebDriver ne peut pas piloter Microsoft Edge, car le pilote utilise Microsoft Edge DevTools. Pour automatiser Microsoft Edge, vérifiez que la stratégie DeveloperToolsAvailability est définie sur 0 ou 1.

Utilisation du modèle Visual Studio

Si vous utilisez le modèle Microsoft Edge WebDriver fourni avec Visual Studio, qui crée un projet de test simple, vérifiez que vous avez effectué les opérations suivantes :

  • Téléchargez Microsoft Edge WebDriver et vérifiez qu’il est disponible dans path.
  • Ajoutez l’infrastructure WebDriver (par exemple, le package NuGet Selenium.WebDriver ) au projet.

Une fois ces étapes effectuées, l’exemple de test qui accède à Bing doit se terminer correctement.

Erreur due à Selenium Tools pour Microsoft Edge

Si vous obtenez l’erreur suivante lorsque vous essayez de créer un instance EdgeDriver : System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)', consultez Mise à niveau de Selenium 3 vers Selenium 4 ci-dessous.

Mise à niveau de Selenium 3 vers Selenium 4

Si vous avez utilisé Selenium Tools pour Microsoft Edge pour ajouter la prise en charge de Microsoft Edge aux tests de navigateur Selenium 3, mettez à jour vos tests vers Selenium 4, comme suit :

  1. Supprimez Les outils Selenium pour Microsoft Edge de votre projet.

  2. Mettez à jour vos tests pour utiliser les classes intégrées EdgeDriver et associées que Selenium 4 fournit à la place. Vous devez mettre à niveau tous les tests Selenium 3 existants vers Selenium 4. Pour en savoir plus sur la mise à niveau vers Selenium 4, consultez Mise à niveau vers Selenium 4.

  3. Supprimez toutes les utilisations de la EdgeOptions.UseChromium propriété . Cette propriété n’existe plus dans Selenium 4, car Selenium 4 prend uniquement en charge Microsoft Edge (Chromium moteur de navigateur).

Selenium 3 n’est pas pris en charge

Pour utiliser WebDriver pour automatiser Microsoft Edge, si vous utilisez Selenium, vérifiez que vous utilisez Selenium 4. Selenium 3 n’est pas pris en charge.

Tous les nouveaux projets qui utilisent Selenium doivent utiliser Selenium 4. Pour utiliser WebDriver pour automatiser Microsoft Edge, si vous utilisez Selenium, vérifiez que vous utilisez Selenium 4. Selenium 3 n’est plus pris en charge.

Les outils Selenium pour Microsoft Edge ne sont plus utilisés

Selenium 4 ne nécessite pas d’outils Selenium pour Microsoft Edge. Les outils Selenium pour Microsoft Edge étaient destinés à Selenium 3 uniquement.

N’utilisez pas Selenium 4 avec Selenium Tools pour Microsoft Edge, car Selenium 4 dispose déjà d’une prise en charge intégrée de Microsoft Edge. Si vous essayez d’utiliser Selenium Tools pour Microsoft Edge, lorsque vous essayez de créer un instance EdgeDriver , vous obtenez l’erreur suivante : System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)'. Si vous utilisez Selenium 4 et que vous obtenez cette erreur, supprimez Microsoft.Edge.SeleniumTools de votre projet et vérifiez que vous utilisez les classes et EdgeDriver officielles EdgeOptions de l’espace OpenQA.Selenium.Edge de noms.

Voir également