Verwenden von WebDriver zum Automatisieren von Microsoft Edge

Mit WebDriver können Sie Microsoft Edge automatisieren, indem Sie die Benutzerinteraktion simulieren. Tests, die WebDriver verwenden, haben einige Vorteile gegenüber JavaScript-Komponententests, die im Browser ausgeführt werden:

  • WebDriver greift auf Funktionen und Informationen zu, die für JavaScript in Browsern nicht verfügbar sind.

  • WebDriver simuliert Benutzerereignisse oder Ereignisse auf Betriebssystemebene genauer als JavaScript-Komponententests.

  • WebDriver verwaltet mehrere Fenster, Registerkarten und Webseiten in einer einzigen Testsitzung.

  • WebDriver führt mehrere Microsoft Edge-Sitzungen auf einem bestimmten Computer aus.

Dieser Artikel enthält rohe Codebeispiele und keine vollständigen Tests. Dieser Artikel enthält keine vollständige Anleitung für die ersten Schritte mit Selenium WebDriver, sondern behandelt nur die Microsoft Edge-spezifischen Teile des Prozesses. Dies umfasst das Abrufen von Microsoft Edge WebDriver und das Festlegen von Microsoft Edge-spezifischen Optionen im Code.

Beziehung zwischen WebDriver und anderer Software

Um Microsoft Edge mit WebDriver zum Simulieren der Benutzerinteraktion zu automatisieren, benötigen Sie drei Komponenten:

  • Microsoft Edge.
  • Microsoft Edge WebDriver.
  • Ein WebDriver-Testframework.

Die funktionale Beziehung zwischen diesen Komponenten sieht wie folgt aus:

Technologie Rolle
WebDriver Ein W3C-Standard für ein plattform- und sprachneutrales Drahtprotokoll. Dieses Protokoll ermöglicht es Out-of-Process-Programmen, das Verhalten von Webbrowsern remote anzuweisen.
Microsoft Edge WebDriver Microsofts Implementierung des WebDriver-Protokolls speziell für Microsoft Edge. Testautoren schreiben Tests, die WebDriver-Befehle verwenden, die Microsoft Edge WebDriver empfängt. Microsoft Edge WebDriver ist dann für die Kommunikation dieses Befehls an den Browser verantwortlich.
Ein WebDriver-Testframework Testautoren verwenden ein Testframework, um End-to-End-Tests zu schreiben und Browser zu automatisieren. Stellt eine sprachspezifische Schnittstelle bereit, die Ihren Code in Befehle übersetzt, die an Microsoft Edge WebDriver gesendet werden. WebDriver-Testframeworks sind für alle wichtigen Plattformen und Sprachen vorhanden. Ein solches Framework ist Selenium WebDriver.
Internet Explorer-Treiber Eine Open-Source-Implementierung des WebDriver-Protokolls speziell für internetbasierte Explorer. Um Legacy-End-to-End-Tests für den Internet Explorer-Modus auszuführen, empfehlen wir die Verwendung von Internet Explorer Driver.
Microsoft WebDriver (Legacy) Der vorherige browserspezifische Treiber für Microsoft Edge (EdgeHTML), der auch als Vorgängerversion von Microsoft Edge bezeichnet wird.

In den folgenden Abschnitten werden die ersten Schritte mit WebDriver für Microsoft Edge beschrieben.

Microsoft Edge WebDriver herunterladen

Um mit dem Schreiben automatisierter Tests zu beginnen, stellen Sie sicher, dass die installierte Microsoft Edge WebDriver-Version wie folgt ihrer Browserversion entspricht:

  1. Wechseln Sie zu edge://settings/help , und notieren Sie sich Ihre Version von Microsoft Edge:

    Die Buildnummer für Microsoft Edge am 15. April 2021

  2. Wechseln Sie zu Microsoft Edge WebDriver.

  3. Wählen Sie im Abschnitt Aktuelle Version abrufen der Seite eine Plattform im Kanal aus, die Ihrer Versionsnummer von Microsoft Edge entspricht:

    Der Abschnitt Abrufen der neuesten Version der Microsoft Edge WebDriver-Webseite

  4. Extrahieren Sie nach Abschluss des Downloads die msedgedriver ausführbare Datei an Ihren bevorzugten Speicherort. Fügen Sie der Umgebungsvariablen den Ordner hinzu PATH , in dem sich die ausführbare Datei befindet.

Sie müssen sowohl einen Browsertreiber (Microsoft Edge WebDriver) als auch ein WebDriver-Testframework (z. B. Selenium WebDriver) installieren, wie unten unter Auswählen eines WebDriver-Testframeworks beschrieben. Dies sind separate Komponenten.

Auswählen eines WebDriver-Testframeworks

Nach dem Herunterladen von Microsoft Edge WebDriver ist die letzte Komponente, die Sie herunterladen müssen, ein WebDriver-Testframework. Testautoren verwenden WebDriver-Testframeworks, um End-to-End-Tests zu schreiben und Browser zu automatisieren. Ein WebDriver-Testframework stellt eine sprachspezifische Schnittstelle bereit, die Ihren Code in Befehle übersetzt, die Microsoft Edge WebDriver in Microsoft Edge ausführt. WebDriver-Testframeworks sind für alle wichtigen Plattformen und Sprachen wie Python, Java, C#, Ruby und JavaScript vorhanden.

Microsoft Edge WebDriver kann mit jedem WebDriver-Framework verwendet werden. Dieser Artikel enthält Anweisungen zur Verwendung des Selenium WebDriver-Frameworks. Sie können jedoch jede Bibliothek, jedes Framework und jede Programmiersprache verwenden, die WebDriver unterstützt.

Selenium WebDriver ist eine beliebte Implementierung eines WebDriver-Frameworks. Selenium ist eine browserübergreifende Automatisierungsbibliothek, die sprachunabhängig und testframeworkagnostisch ist. In diesem Artikel wird Selenium WebDriver nur als illustratives Beispiel verwendet, da es die Anforderungen der meisten Benutzer erfüllt. Wenn Sie Selenium zum Automatisieren von Microsoft Edge verwenden, müssen Sie Selenium 4 verwenden. Selenium 3 wird nicht mehr unterstützt.

Wenn Sie dieselben Aufgaben mit einem anderen WebDriver-Testframework als Selenium WebDriver ausführen möchten, lesen Sie die offizielle Dokumentation für das Framework Ihrer Wahl.

Verwenden von Selenium WebDriver

Ein mögliches WebDriver-Framework, das Sie verwenden können, ist Selenium WebDriver, das Teil der Selenium-Tools-Suite ist. Selenium WebDriver ist ein Open-Source-Testframework, das auf jeder Plattform verwendet werden kann und Sprachbindungen für Java, Python 3, C#, Ruby und JavaScript bereitstellt.

Wenn Sie Selenium zum Automatisieren von Microsoft Edge verwenden, müssen Sie Selenium 4 verwenden. Selenium 3 wird nicht mehr unterstützt.

Ausführliche Anweisungen zum Installieren von Selenium für Ihre bevorzugte Sprache und Entwicklungsumgebung finden Sie in der Selenium-Dokumentation zum Installieren einer Selenium-Bibliothek.

Automatisieren von Microsoft Edge mit WebDriver

Um einen Browser mit WebDriver zu automatisieren, müssen Sie zuerst eine WebDriver-Sitzung mithilfe eines WebDriver-Testframeworks starten. Eine WebDriver-Sitzung ist eine einzelne ausgeführte instance eines Browsers, der über WebDriver-Befehle gesteuert wird.

Starten Sie eine WebDriver-Sitzung, um eine neue Browserinstanz zu beginnen. Die gestartete Browserinstanz bleibt geöffnet, bis Sie die WebDriver-Sitzung schließen.

Der folgende Abschnitt führt Sie durch die Verwendung von Selenium 4 zum Starten einer WebDriver-Sitzung mit Microsoft Edge.

Hinweis

Dieser Artikel enthält Anweisungen zur Verwendung des Selenium WebDriver-Frameworks. Sie können jedoch jede Bibliothek, jedes Framework und jede Programmiersprache verwenden, die WebDriver unterstützt. Informationen zum Ausführen der gleichen Aufgaben mithilfe eines anderen Frameworks finden Sie in der Dokumentation für das Framework Ihrer Wahl.

Automatisieren von Microsoft Edge

Selenium verwendet die EdgeDriver -Klasse, um eine Microsoft Edge-Sitzung zu verwalten. Der folgende Code:

  1. Startet eine Microsoft Edge-Sitzung.
  2. Weist Microsoft Edge an, zu Bing zu wechseln.
  3. Sucht nach "WebDriver".
  4. Ruhezustand für einige Sekunden, damit Sie die Ergebnisse sehen können.

Um mit der Automatisierung von Microsoft Edge mit WebDriver zu beginnen, kopieren Sie den Codeausschnitt für Ihre bevorzugte Sprache, und fügen Sie ihn ein:

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();
            }
        }
    }
}

Verwalten und Konfigurieren des Microsoft Edge WebDriver-Diensts

Wenn Sie ein neues EdgeDriver Objekt zum Starten einer Microsoft Edge-Sitzung erstellen, startet Selenium einen neuen Microsoft Edge WebDriver-Prozess, mit dem das EdgeDriver Objekt kommuniziert. Der Microsoft Edge WebDriver-Prozess wird geschlossen, wenn Sie die EdgeDriver -Methode des Quit Objekts aufrufen. Die Verwaltung eines eigenen Treiberprozesses für jedes EdgeDriver Objekt kann bei vielen Tests ineffizient sein, da jeder Test auf den Start eines neuen Treiberprozesses warten muss. Stattdessen können Sie einen einzelnen Microsoft Edge WebDriver-Prozess erstellen und dann für mehrere Tests wiederverwenden.

Selenium verwendet die EdgeDriverService -Klasse, um einen Microsoft Edge WebDriver-Prozess zu verwalten. Sie können eine einmal erstellen EdgeDriverService , bevor Sie Ihre Tests ausführen, und dieses EdgeDriverService Objekt dann an den EdgeDriver Konstruktor übergeben, wenn Sie ein neues EdgeDriver Objekt erstellen. Wenn Sie einen EdgeDriverService an den EdgeDriver Konstruktor übergeben, verwendet das EdgeDriver -Objekt diese EdgeDriverService, anstatt ein neues zu erstellen.

Sie können auch verwenden EdgeDriverService , um Befehlszeilenoptionen für den Microsoft Edge WebDriver-Prozess zu konfigurieren, wie unten gezeigt.

Mit dem folgenden Codeausschnitt wird eine neue EdgeDriverService erstellt und eine ausführliche Protokollausgabe aktiviert:

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

var driver = new EdgeDriver(service);

Konfigurieren von Microsoft Edge-Optionen

Sie können ein EdgeOptions Objekt an den EdgeDriver Konstruktor übergeben, um zusätzliche Optionen für den Microsoft Edge-Browserprozess zu konfigurieren. Im folgenden Abschnitt wird gezeigt, wie Sie für einige gängige Szenarien verwenden EdgeOptions . Eine vollständige Liste der unterstützten Optionen finden Sie unter Funktionen und EdgeOptionen.

Auswählen bestimmter Browserbinärdateien

Sie können eine WebDriver-Sitzung mit bestimmten Microsoft Edge-Binärdateien starten. Beispielsweise können Sie Tests mit den Microsoft Edge-Vorschaukanälen wie Microsoft Edge Beta, Dev oder Canary ausführen.

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

var driver = new EdgeDriver(options);
Übergeben zusätzlicher Befehlszeilenargumente

Sie können verwenden EdgeOptions , um Befehlszeilenargumente zu konfigurieren, die beim Erstellen einer Sitzung an den Microsoft Edge-Browserprozess übergeben werden. Beispielsweise können Sie den Browser so konfigurieren, dass er im headless-Modus ausgeführt wird.

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

var driver = new EdgeDriver(options);

Andere WebDriver-Installationsoptionen

Docker

Wenn Sie Docker verwenden, führen Sie den folgenden Befehl aus, um ein vorkonfiguriertes Image herunterzuladen, in dem Microsoft Edge und Microsoft Edge WebDriver vorinstalliert sind.

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

Weitere Informationen finden Sie unter msedgedriver-Container auf Docker Hub.

Application Guard

Vertrauenswürdige Websites, die Microsoft Defender Application Guard verwenden, können mithilfe von Microsoft Edge WebDriver automatisiert werden. Microsoft Defender Application Guard wird auch kurz Application Guard genannt.

Nicht vertrauenswürdige Websites, die Application Guard verwenden, können nicht mit Microsoft Edge WebDriver automatisiert oder bearbeitet werden. Application Guard nicht vertrauenswürdige Websites in einem Container gestartet, und dieser Container macht nicht den Remotedebugport verfügbar, den Microsoft Edge WebDriver für die Kommunikation mit der Website benötigt.

Ihr Unternehmensadministrator definiert, was vertrauenswürdige Websites sind, einschließlich Cloudressourcen und interne Netzwerke. Websites, die nicht in der Liste der vertrauenswürdigen Websites enthalten sind, gelten als nicht vertrauenswürdig. Microsoft Edge WebDriver kann sowohl InPrivate-Fenster als auch Websites in der Liste der vertrauenswürdigen Websites automatisieren.

Weitere Informationen zu Application Guard finden Sie unter:

Deaktivieren der Erfassung von Diagnosedaten

Standardmäßig sendet Microsoft Edge WebDriver Diagnosedaten wie die status des Befehls Neue SitzungswebDriver an Microsoft. Um die Sammlung von Diagnosedaten für Microsoft Edge WebDriver zu deaktivieren, legen Sie die Umgebungsvariable MSEDGEDRIVER_TELEMETRY_OPTOUT auf fest 1. Weitere Informationen zu den Daten, die von Microsoft Edge WebDriver gesammelt werden, finden Sie im Whitepaper zum Microsoft Edge-Datenschutz.

Legacy von Microsoft WebDriver für EdgeHTML

Microsoft WebDriver ist die Ältere WebDriver-Implementierung für EdgeHTML-basiertes Microsoft Edge. Microsoft WebDriver wurde als optionale Windows-Komponente verteilt, da die Vorgängerversion von Microsoft Edge (EdgeHTML) mit dem Betriebssystem aktualisiert wurde. Microsoft WebDriver ist nicht mit den neuesten, Chromium basierten Versionen von Microsoft Edge kompatibel. Microsoft WebDriver wird weiterhin für Entwickler verfügbar gemacht, die WebDriver-basierte Tests für UWP-Apps geschrieben haben, da diese auf EdgeHTML basieren, aber Microsoft WebDriver wird nicht mehr empfohlen.

Siehe WebDriver (EdgeHTML).

Problembehandlung

Dies sind Überlegungen zur Problembehandlung bei der Verwendung von WebDriver zum Automatisieren von Microsoft Edge.

Verfügbarkeitsrichtlinie für Entwicklertools

Wenn Ihr IT-Administrator die DeveloperToolsAvailability-Richtlinie auf 2festgelegt hat, wird Microsoft Edge WebDriver daran gehindert, Microsoft Edge zu steuern, da der Treiber Microsoft Edge DevTools verwendet. Stellen Sie zum Automatisieren von Microsoft Edge sicher, dass die DeveloperToolsAvailability-Richtlinie auf 0 oder 1festgelegt ist.

Verwenden der Visual Studio-Vorlage

Wenn Sie die microsoft Edge WebDriver-Vorlage verwenden, die in Visual Studio bereitgestellt wird und ein einfaches Testprojekt erstellt, stellen Sie sicher, dass Sie Folgendes getan haben:

  • Laden Sie Microsoft Edge WebDriver herunter, und stellen Sie sicher, dass es im PFAD verfügbar ist.
  • Fügen Sie dem Projekt das WebDriver-Framework (z. B. das NuGet-Paket Selenium.WebDriver ) hinzu.

Nachdem Sie diese Schritte ausgeführt haben, sollte der Beispieltest, der zu Bing navigiert, erfolgreich abgeschlossen werden.

Fehler aufgrund von Selenium Tools für Microsoft Edge

Wenn beim Versuch, eine neue EdgeDriver instance zu erstellen, die folgende Fehlermeldung angezeigt wird: System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)', lesen Sie unten das Upgrade von Selenium 3 auf Selenium 4.

Upgrade von Selenium 3 auf Selenium 4

Wenn Sie Selenium Tools für Microsoft Edge verwendet haben, um Microsoft Edge-Unterstützung zu Selenium 3-Browsertests hinzuzufügen, aktualisieren Sie Ihre Tests wie folgt auf Selenium 4:

  1. Entfernen Sie Selenium Tools für Microsoft Edge aus Ihrem Projekt.

  2. Aktualisieren Sie Ihre Tests, um stattdessen die integrierten EdgeDriver und zugehörigen Klassen zu verwenden, die Selenium 4 bereitstellt. Sie müssen alle vorhandenen Selenium 3-Tests auf Selenium 4 aktualisieren. Weitere Informationen zum Upgrade auf Selenium 4 finden Sie unter Upgrade auf Selenium 4.

  3. Entfernen Sie alle Verwendungen der EdgeOptions.UseChromium Eigenschaft. Diese Eigenschaft ist in Selenium 4 nicht mehr vorhanden, da Selenium 4 nur Microsoft Edge (Chromium Browser-Engine) unterstützt.

Selenium 3 wird nicht unterstützt

Wenn Sie Selenium verwenden möchten, stellen Sie sicher, dass Sie Selenium 4 verwenden, um Microsoft Edge mit WebDriver zu automatisieren. Selenium 3 wird nicht unterstützt.

Alle neuen Projekte, die Selenium verwenden, müssen Selenium 4 verwenden. Wenn Sie Selenium verwenden möchten, stellen Sie sicher, dass Sie Selenium 4 verwenden, um Microsoft Edge mit WebDriver zu automatisieren. Selenium 3 wird nicht mehr unterstützt.

Selenium Tools für Microsoft Edge nicht mehr verwendet

Selenium 4 erfordert keine Selenium Tools für Microsoft Edge. Selenium Tools für Microsoft Edge wurde nur für Selenium 3 verwendet.

Verwenden Sie Selenium 4 nicht mit Selenium Tools für Microsoft Edge, da Selenium 4 bereits über integrierte Unterstützung für Microsoft Edge verfügt. Wenn Sie versuchen, Selenium Tools für Microsoft Edge zu verwenden, erhalten Sie beim Versuch, eine neue EdgeDriver instance zu erstellen, die folgende Fehlermeldung: System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)'. Wenn Sie Selenium 4 verwenden und diesen Fehler erhalten, entfernen Sie Microsoft.Edge.SeleniumTools aus Ihrem Projekt, und stellen Sie sicher, dass Sie die offiziellen EdgeOptions Klassen und EdgeDriver aus dem OpenQA.Selenium.Edge Namespace verwenden.

Weitere Informationen