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 microsoft Edge WebDriver-Version, die Sie installieren, ihrer Version von Microsoft Edge entspricht. Die ersten drei Teile der vierteiligen Versionsnummer müssen übereinstimmen.
Laden Sie wie folgt eine Version von Microsoft Edge WebDriver herunter, die Ihrer Browserversion entspricht, und installieren Sie sie:
Wechseln Sie zu
edge://settings/help
, und notieren Sie sich Ihre Version von Microsoft Edge, eine vierteilige Nummer:Wechseln Sie zu Microsoft Edge WebDriver.
Klicken Sie im Abschnitt Downloads der Seite unter einer Versionsnummer, die Ihrer Versionsnummer von Microsoft Edge entspricht, auf eine Plattformschaltfläche (z. B. x64):
Die ersten drei Teile der vierteiligen Versionsnummer müssen zwischen Microsoft Edge und Microsoft Edge WebDriver übereinstimmen. Beispielsweise funktionieren die folgenden Versionen von Microsoft Edge und Microsoft Edge WebDriver zusammen, da die ersten drei Zahlen identisch sind:
- 128.0.2739.79
- 128.0.2739.84
Um ältere Versionen herunterzuladen, klicken Sie unter dem Abschnitt Zuletzt verwendete Versionen auf die Schaltfläche Zum vollständigen Verzeichnis wechseln.
Extrahieren Sie nach Abschluss des Downloads die
msedgedriver
ausführbare Datei an Ihren bevorzugten Speicherort. Fügen Sie der Umgebungsvariablen den Ordner hinzuPATH
, 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:
- Startet eine Microsoft Edge-Sitzung.
- Weist Microsoft Edge an, zu Bing zu wechseln.
- Sucht nach "WebDriver".
- 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:
- Microsoft Edge-Unterstützung für Microsoft Defender Application Guard.
- Microsoft Defender Application Guard Übersicht.
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 Von Microsoft Edge WebDriver gesammelten Daten finden Sie unter Microsoft Edge WebDriver in Microsoft Edge Privacy Whitepaper.
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 2
festgelegt 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 1
festgelegt 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:
Entfernen Sie Selenium Tools für Microsoft Edge aus Ihrem Projekt.
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.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
- Das Selenium Browser Automation Project – Informationen zu WebDriver im Kontext von Selenium und zum Schreiben automatisierter WebDriver-Tests mit Selenium.
- Selenium.WebDriver NuGet-Paket.
- Wenden Sie sich an das Microsoft Edge WebDriver-Team , um Feedback zur Verwendung von WebDriver, WebDriver-Testframeworks (z. B. Selenium) und Microsoft Edge zu senden.