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, assurez-vous que la version de Microsoft Edge WebDriver que vous installez correspond à votre version de Microsoft Edge. Les trois premières parties du numéro de version en quatre parties doivent correspondre.
Téléchargez et installez une version de Microsoft Edge WebDriver qui correspond à la version de votre navigateur, comme suit :
Accédez à
edge://settings/help
et notez votre version de Microsoft Edge, un numéro en quatre parties :Accédez à Microsoft Edge WebDriver.
Dans la section Téléchargements de la page, cliquez sur un bouton de plateforme (tel que x64) sous un numéro de version correspondant à votre numéro de version de Microsoft Edge :
Les trois premières parties du numéro de version en quatre parties doivent correspondre, entre Microsoft Edge et Microsoft Edge WebDriver. Par exemple, les versions suivantes de Microsoft Edge et microsoft Edge WebDriver fonctionnent ensemble, car les trois premiers nombres sont les mêmes :
- 128.0.2739.79
- 128.0.2739.84
Pour télécharger des versions antérieures, cliquez sur le bouton Accéder au répertoire complet sous la section Versions récentes .
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 à votrePATH
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 :
- Démarre une session Microsoft Edge.
- Demande à Microsoft Edge d’accéder à Bing.
- Recherche « WebDriver ».
- 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 EdgeDriver
Quit
. 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 :
- Prise en charge de Microsoft Edge pour Protection d'application Microsoft Defender.
- Protection d'application Microsoft Defender vue d’ensemble.
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_OPTOUT
1
. Pour plus d’informations sur les données collectées par Microsoft Edge WebDriver, consultez Microsoft Edge WebDriver dans 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 :
Supprimez Les outils Selenium pour Microsoft Edge de votre projet.
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.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
- Projet d’automatisation du navigateur Selenium : informations sur WebDriver dans le contexte de Selenium et comment écrire des tests WebDriver automatisés à l’aide de Selenium.
- Package NuGet Selenium.WebDriver.
- Contactez l’équipe Microsoft Edge WebDriver pour envoyer des commentaires sur l’utilisation de WebDriver, des infrastructures de test WebDriver (telles que Selenium) et Microsoft Edge.