Selenium C#-Tutorial: NUnit-Framework mit Beispiel

⚡ Intelligente Zusammenfassung

Selenium WebDriver steuert Browser von C# über die IWebDriver-Schnittstelle, während NUnit die Testattribute, Assertions und Test Explorer-Berichte bereitstellt, die diese Browser-Schritte in wiederholbare automatisierte Tests verwandeln.

  • 🔘 Werkzeugkette: Visual Studio plus die Selenium WebDriver, NUnit und NUnit Test Adapter NuGet Pakete.
  • ☑️ Projektaufbau: Der Ausgabetyp muss Klassenbibliothek und nicht Konsolenanwendung sein, sonst schlägt der Build fehl.
  • NUnit-Attribute: SetUp öffnet den Browser, Test führt die Aktionen aus, TearDown schließt ihn.
  • 🧪 Befehlsgruppen: Browserbefehle, WebElement-Befehle und Dropdown-Befehle über SelectElement.
  • Standorte: FindElement akzeptiert XPath- und CSS-Selektorstrategien für jede Elementinteraktion.
  • Ausführung: Test Explorer führt die Klasse aus und meldet jedes Ergebnis als bestanden oder nicht bestanden.

Selenium C#-Automatisierung mit dem NUnit-Testframework

Selenium Übersicht

Selenium ist ein Open-Source-Web Automatisierungstests Tool, das mehrere Browser und mehrere Betriebssysteme unterstützt. Es ermöglicht Testern die Verwendung mehrerer Programmiersprachen wie Java, C#, PythonRuby, PHP und Perl werden zum Codieren automatisierter Tests verwendet. Wenn Sie das Tool noch nicht kennen, beginnen Sie mit dem Selenium Lernprogramm und der WebDriver versus Selenium RC-Vergleich.

Selenium Die Steuerung erfolgt über den Browser; die verwendete Programmiersprache bestimmt die Struktur.

C#-Übersicht

C# ist eine objektorientierte Programmiersprache, abgeleitet von C++ und JavaC# ermöglicht Entwicklern die Erstellung von Anwendungen mit Visual Studio auf der .NET-Plattform. Im Folgenden werden die wichtigsten Funktionen aufgeführt. C#.

  1. Es ist eine objektorientierte Programmiersprache
  2. Es unterstützt die Entwicklung von Konsolen-, Windows- und webbasierten Anwendungen
  3. Es bietet Funktionen wie Kapselung, Vererbung und Polymorphismus.

Vor der Verkabelung Selenium Es hilft dabei, die Struktur eines einfachen C#-Programms zu erkennen.

Grundlegende Syntax von C#

Ein Programm in C# muss die folgenden Abschnitte enthalten

  1. Namespace-Deklaration
  2. Klassen
  3. Klassenattribute und -methoden
  4. Hauptmethode
  5. Programmanweisungen

Beispiel-

Unten ist ein Beispiel Selenium C#-Beispielprogramm zum Ausgeben des Textes 'Guru99' auf der Systemkonsole.

using System;
namespace FirstProgram {
class DemoPrint {
static void main(){
    Console.WriteLine("Guru99");
	}
  }
}

Erläuterung:

  • Ein Namespace oben Selenium Das C#-Beispiel ist eine Sammlung mehrerer Klassen. Jeder Namespace muss mit dem Schlüsselwort „using“ deklariert werden.
  • Die erste Anweisung des Codes bindet den Namespace „System“ in unser Programm ein. Der System-Namespace definiert die grundlegenden Klassen und Ereignisse, die in C# verwendet werden. Der zu verwendende Namensraum hängt von der Programmanforderung ab.
  • Die zweite Anweisung deklariert einen Namespace „FirstProgram“ für die Klasse „DemoPrint“. Eine AC#-Datei kann mehrere Klassen innerhalb desselben Namespace enthalten.
  • Die dritte Anweisung enthält die Klassendeklaration. Eine Klasse kann mehrere Attribute und mehrere Methoden enthalten.
  • Die vierte Anweisung enthält eine Deklaration der Main-Methode. Die Hauptmethode ist der Einstiegspunkt für die Ausführung jeder Klasse.
  • Die letzte Anweisung ist die C#-Syntax, die zum Ausgeben einer Anweisung auf der Konsole verwendet wird. WriteLine ist eine Methode von Console Klasse. Beachten Sie, dass der Einstiegspunkt so geschrieben wird. Main mit einem großen M in echtem C#; der Kleinbuchstabe main im obigen Beispiel wird nicht als Einstiegspunkt erkannt.

Nachdem die Syntax geklärt ist, besteht der nächste Schritt darin, die Tools zu installieren, die diese Tests kompilieren und ausführen.

Selenium mit C#-Setup

So richten Sie Visual Studio ein mit Selenium WebDriver:

Jetzt hier Selenium C#-Tutorial: Lernen Sie Schritt für Schritt, wie Sie Visual Studio einrichten mit Selenium WebDriver:

Visual Studio ist eine integrierte Entwicklungsumgebung (IDE), die von Entwicklern zum Erstellen von Anwendungen für mehrere Plattformen verwendet wird, wie z. B. Windows, Android, iOS und Cloud-basierte Anwendungen.

Schritt 1) Navigieren Sie zu der URL

https://visualstudio.microsoft.com/downloads/ und klicke auf das 'Kostenfreier Download' Schaltfläche, die auf der Registerkarte „Community“ von Visual Studio angezeigt wird

Visual Studio-Downloadseite mit Schaltfläche zum kostenlosen Herunterladen der Community Edition

Schritt 2) Öffnen Sie die heruntergeladene Exe. Klicken Sie auf „Ja“, wenn Sie nach Administratorrechten gefragt werden.

Das Visual Studio-Installationsprogramm fragt nach Administratorrechten

Schritt 3) Das folgende Popup wird angezeigt. Klicken Sie auf die Schaltfläche „Weiter“.

Willkommens-Popup des Visual Studio-Installationsprogramms mit der Schaltfläche „Weiter“

Die Dateien werden wie im Popup unten gezeigt heruntergeladen.

Visual Studio-Installationsprogramm lädt die Komponentendateien herunter

Schritt 4) Im nächsten Bildschirm

Aktivieren Sie die Kontrollkästchen für

  • Universal- Windows Plattformentwicklung
  • .NET-Desktopentwicklung

Klicken Sie auf „Installieren“.

Visual Studio-Arbeitslastbildschirm mit Universal Windows Plattform- und .NET-Desktopentwicklung abgehakt

Warten Sie, bis die Installation jeder Komponente abgeschlossen ist. Die Dateien sind 16 GB groß und brauchen Zeit.

Fortschrittsanzeige des Visual Studio-Installationsprogramms für jede ausgewählte Komponente

Schritt 5) Das folgende Popup wird angezeigt. Klicken Sie auf die Schaltfläche „Neustart“.

Das Visual Studio-Installationsprogramm fordert einen Neustart des Computers an.

Schritt 6) Suchen Sie nach dem Neustart des Computers im Startmenü nach „Visual Studio“ und klicken Sie auf das Suchergebnis. Das folgende Popup wird angezeigt. Klicken Sie auf den Link „Nicht jetzt, vielleicht später“, wenn Sie noch kein Konto haben.

Visual Studio-Anmelde-Popup mit dem Link „Nicht jetzt, vielleicht später“

Schritt 7) Im nächsten Bildschirm

  • Wählen Sie das Farbthema, das Ihnen gefällt
  • Klicken Sie auf die Schaltfläche „Visual Studio starten“.

Visual Studio-Startbildschirm zur Auswahl eines Farbschemas

Schritt 8) Der Visual Studio-Bildschirm „Erste Schritte“ wird angezeigt.

Visual Studio-Startbildschirm nach Abschluss der Installation

Erstellen Sie ein neues Projekt in Visual Studio:

Schritt 1) Klicken Sie im Menü „Datei“ auf „Neu“ > „Projekt“.

Im Menü „Datei“ von Visual Studio war „Neu“ und „Projekt“ ausgewählt.

Schritt 2) Im nächsten Bildschirm

  1. Wählen Sie die Option „Visual C#“
  2. Klicken Sie auf Konsolen-App (.Net Framework).
  3. Geben Sie den Namen als „Guru99 "
  4. klicken Sie auf OK

Dialogfeld „Neues Projekt“ mit Visual C#-Konsolenanwendung und dem Projektnamen Guru99

Schritt 3) Sobald das Projekt erfolgreich erstellt wurde, wird der folgende Bildschirm angezeigt.

Visual Studio-Editor, der das neu erstellte Element anzeigt Guru99 Konsolenprojekt

Einrichten von Visual Studio mit Selenium WebDriver:

Schritt 1) Navigieren Sie zu Extras -> NuGet Paketmanager -> N verwaltenuGet Pakete zur Lösung

Menüpfad „Werkzeuge“ zu NuGet Paketmanager und Manage NuGet Pakete zur Lösung

Schritt 2) Im nächsten Bildschirm

  1. Suchen Sie nach Selenium auf dem resultierenden Bildschirm
  2. Wählen Sie das erste Suchergebnis aus
  3. Aktivieren Sie das Kontrollkästchen „Projekt“
  4. Klicken Sie auf 'Installieren'

NuGet Paketmanager mit dem Selenium Suchergebnis und Projekt-Kontrollkästchen angekreuzt

Schritt 3) Klicken Sie im Popup-Bildschirm auf die Schaltfläche „OK“.

NuGet Bestätigungs-Popup vor dem Selenium Paket ist installiert

Schritt 4) Sobald das Paket erfolgreich installiert wurde, wird die folgende Meldung angezeigt.

NuGet Ausgabe bestätigt Selenium WebDriver wurde erfolgreich installiert

Selenium Der Browser kann sich nun öffnen, aber er kann noch nicht melden, ob ein Test erfolgreich war. Das ist die Aufgabe eines Unit-Testing-Frameworks.

NUnit Framework: Übersicht

NUnit ist die Unit Tests Framework unterstützt durch Visual Studio und Selenium WebDriver. NUnit ist das am weitesten verbreitete Unit-Testing-Framework für .NET-Anwendungen. NUnit präsentiert die Testergebnisse in einem lesbaren Format und ermöglicht es dem Tester, die automatisierten Tests zu debuggen.

Um NUnit nutzen zu können, müssen wir das NUnit Framework und den NUnit Test Adapter auf Visual Studio installieren.

Schritte zur Installation des NUnit Framework

Jetzt hier Selenium Mit dem C#-Tutorial lernen wir den Prozess zur Installation des NUnit-Frameworks kennen:

Schritt 1) Navigieren Sie zu Extras -> NuGet Paketmanager -> N verwaltenuGet Pakete zur Lösung

Das Menü „Werkzeuge“ wurde bei N wieder geöffnet.uGet Paketmanager für die NUnit-Installation

Schritt 2) Im nächsten Fenster

  1. Suchen Sie nach NUnit
  2. Wählen Sie das Suchergebnis aus
  3. Wählen Sie Projekt aus
  4. Klicken Sie auf Installieren

NuGet Paketmanager mit dem NUnit-Suchergebnis zur Installation ausgewählt

Schritt 3) Das folgende Popup wird angezeigt. Klicken Sie auf die Schaltfläche „OK“.

NuGet Vor der Installation des NUnit-Frameworks erscheint ein Bestätigungs-Popup.

Schritt 4) Die folgende Meldung wird angezeigt, sobald die Installation abgeschlossen ist.

NuGet Meldung bestätigt die abgeschlossene Installation des NUnit-Frameworks

Schritte zum Herunterladen des NUnit-Testadapters

In diesem NUnit-Tutorial werden wir nun die Schritte zum Herunterladen des NUnit-Testadapters behandeln:

Bitte beachten Sie, dass die folgenden Schritte nur für 32-Bit-Computer funktionieren. Für 64-Bit-Computer müssen Sie den „NUnit3 Test Adapter“ herunterladen, indem Sie den gleichen Prozess wie unten beschrieben befolgen.

Aktuelle Pakete: Ein modernes Projekt installiert NUnit3TestAdapter Zusammen mit Microsoft.NET.Test.Sdkund die älteren NUnitTestAdapter Das Paket wird nicht mehr gepflegt. Unter .NET (Core) kann das gesamte Projekt mit folgendem Gerüst erstellt werden: dotnet new nunit, wodurch alle drei Pakete für Sie hinzugefügt werden.

Schritt 1) Navigieren Sie zu Extras ->NuGet Paketmanager -> N verwaltenuGet Pakete zur Lösung. Auf diesem Bildschirm

  1. Suchen Sie nach NUnitTestAdapter
  2. Klicken Sie auf Suchergebnis
  3. Wählen Sie Projekt aus
  4. Klicken Sie auf Installieren

NuGet Der Paketmanager sucht nach NUnitTestAdapter im ausgewählten Projekt.

Schritt 2) Klicken Sie im Bestätigungs-Popup auf OK. Sobald die Installation abgeschlossen ist, wird die folgende Meldung angezeigt:

NuGet Meldung bestätigt die abgeschlossene Installation des NUnit Test Adapters

Beide Hälften sind installiert, der nächste Schritt besteht also darin, sie in einer einzigen Testklasse zusammenzuführen.

Selenium und NUnit-Framework

Durch die Integration von Selenium in das NUnit-Framework kann ein Tester zwischen verschiedenen Testklassen unterscheiden. NUnit ermöglicht es Testern außerdem, Anmerkungen wie SetUp, Test und TearDown zu verwenden, um Aktionen vor und nach dem Ausführen des Tests auszuführen.

Das NUnit-Framework kann integriert werden Selenium indem man eine NUnit-Testklasse erstellt und diese Testklasse mithilfe des NUnit-Frameworks ausführt. Java Das Äquivalent zu diesem Muster wird im Folgenden behandelt. JUnit Framework-Tutorialund die .NET-Alternative zu NUnit in Visual Studio wird zusammen mit TestNG für Selenium.

Nachfolgend finden Sie die folgenden Schritte Selenium Zum Erstellen und Ausführen einer Testklasse mit dem NUnit-Framework sind Tutorials zum C#-Framework erforderlich.

Schritte zum Erstellen einer NUnit-Testklasse in Selenium:

Schritt 1) Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt > Hinzufügen > Klasse

Kontextmenü des Projektmappen-Explorers mit der Option "Hinzufügen" und "Klasse" ausgewählt

Schritt 2) Das Fenster zur Klassenerstellung wird angezeigt.

  1. Geben Sie der Klasse einen Namen
  2. Klicken Sie auf die Schaltfläche „Hinzufügen“.

Im Dialogfeld „Neues Element hinzufügen“ wird die neue NUnit-Testklasse benannt.

Schritt 3) Der folgende Bildschirm wird angezeigt.

Eine leere C#-Klassendatei wurde im Visual Studio-Editor erstellt.

Schritt 4) Fügen Sie den folgenden Code zur erstellten Klasse hinzu. Bitte beachten Sie, dass Sie den Speicherort der Datei „chromedriver.exe“ bei der Initialisierung des Chrome-Treibers angeben müssen. Selenium 4.6 und spätere Versionen Selenium Geschäftsführer, wodurch der passende Treiber automatisch ermittelt wird, new ChromeDriver() Die aktuelle Form ist die ohne Pfadangabe – der unten stehende Pfad wird beibehalten, da er mit den Screenshots übereinstimmt.

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class Guru99Demo						
    {
        IWebDriver driver;

        [SetUp]
		public void startBrowser()
        {
            driver = new ChromeDriver("D:\\3rdparty\\chrome");
        }

        [Test]
		public void test()
        {
            driver.Url = "http://www.google.co.in";
        }

        [TearDown]
		public void closeBrowser()
        {
            driver.Close();
        }

    }
}

Schritt 4) Klicken Sie auf „Erstellen“ -> „Lösung erstellen“.

Im Visual Studio-Menü „Erstellen“ ist die Option „Projektmappe erstellen“ ausgewählt.

Anmerkungen: Beim Erstellen erhalten Sie möglicherweise eine Fehlermeldung wie „Enthält keine statische ‚Haupt‘-Methode, die für einen Einstiegspunkt geeignet ist“.

Fehler beim Kompilieren: Es wurde keine geeignete statische Hauptmethode als Einstiegspunkt gefunden.

Um dieses Problem zu beheben, gehen Sie zu Projekt > Eigenschaften und ändern Sie den Ausgabetyp in „Klassenbibliothek“. Standardmäßig ist „Konsolenanwendung“ eingestellt.

Projekteigenschaften mit auf Klassenbibliothek umgestelltem Ausgabetyp.

Schritt 5) Sobald der Build erfolgreich ist, müssen wir das Test-Explorer-Fenster öffnen. Klicken Sie auf Test -> Windows -> Test-Explorer

Testmenüpfad zu Windows und Test Explorer

Schritt 6) Das Test-Explorer-Fenster wird mit der Liste der verfügbaren Tests geöffnet. Klicken Sie mit der rechten Maustaste auf Test Explorer und wählen Sie „Ausgewählte Tests ausführen“.

Test Explorer listet die verfügbaren Tests mit der Option "Ausgewählte Tests ausführen" auf.

Schritt 7) Selenium muss den Browser mit der angegebenen Einstellung öffnen URL Schließen Sie anschließend den Browser. Der Testfallstatus ändert sich im Test-Explorer-Fenster zu „Bestanden“.

Der Test-Explorer zeigt das als bestanden markierte NUnit-Testergebnis an.

Ein bestandener Test beweist, dass die Installation funktioniert. Im Folgenden finden Sie das Vokabular, mit dem Sie tatsächlich Tests schreiben werden.

Selenium WebDriver-Befehle in C#

C# verwendet die Schnittstelle „IWebDriver“ für Browserinteraktionen. Die folgenden Befehlskategorien sind verfügbar mit Selenium in C#.

  1. Browser-Befehle
  2. Befehle für Webelemente
  3. Dropdown-Befehle

Jetzt hier Selenium C#-Tutorial, lasst uns das studieren Selenium WebDriver-Befehle nacheinander. Java Gegenstücke werden in diesem gezeigt erstes WebDriver-Skript durchgehen.

Die folgenden Befehle sind noch aktuell. IWebDriver Oberfläche in Selenium 4, daher bleibt die Syntax unverändert.

Browserbefehle:

Nachfolgend finden Sie eine Liste der in C# verfügbaren Browserbefehle mit Selenium.

Befehlsname Beschreibung Syntax
URL-Befehl Dieser Befehl dient zum Öffnen einer bestimmten Datei. URL im Browser.
driver.Url = "https://www.guru99.com"
Titelbefehl Mit diesem Befehl wird der Seitentitel der aktuell geöffneten Webseite abgerufen
String title = driver.Title
PageSource-Befehl Mit diesem Befehl wird der Quellcode der aktuell geöffneten Webseite abgerufen.
String pageSource = driver.PageSource
Befehl schließen Mit diesem Befehl wird die zuletzt geöffnete Browserinstanz geschlossen.
driver.Close();
Befehl beenden Mit diesem Befehl werden alle geöffneten Browserinstanzen geschlossen
driver.Quit();
Zurück-Befehl Mit diesem Befehl navigieren Sie zur vorherigen Seite des Browserverlaufs.
driver.Navigate().Back();
Vorwärtskommando Mit diesem Befehl navigieren Sie zur nächsten Seite des Browserverlaufs.
driver.Navigate().Forward()
Befehl aktualisieren Mit diesem Befehl wird eine Browseraktualisierung durchgeführt.
driver.Navigate().Refresh()

Browserbefehle wirken auf das Fenster; die nächste Gruppe wirkt auf das, was sich darin befindet.

WebElement-Befehle

Ein WebElement repräsentiert ein beliebiges Element einer Webseite. Sie werden durch HTML-Tags dargestellt. Schaltflächen, Textfelder, Links, Bilder, Tabellen und Frames sind allesamt WebElemente. OperaAktionen an diesen Elementen werden durch die IWebElement Schnittstelle. Um mit einem WebElement zu interagieren, müssen wir zunächst Finde das Element auf der Seite und führen Sie dann eine Operation darauf aus. Die verfügbaren Strategien werden in Ortungsgeräte in SeleniumDie Entwicklertools des Browsers – oder die älteren Add-ons Firebug und Firepath, deren Daten in den folgenden Screenshots veröffentlicht wurden – können verwendet werden, um die XPath eines WebElements.

Nachfolgend sind die in C# verfügbaren WebElement-Befehle aufgeführt.

Befehlsname Beschreibung Syntax
Klicken Sie auf den Befehl Mit diesem Befehl können Sie auf ein Webelement klicken. Damit das Element angeklickt werden kann, muss es auf der Webseite sichtbar sein. Dieser Befehl wird auch für Kontrollkästchen- und Optionsfeldoperationen verwendet.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();
Klarer Befehl Dieser Befehl wird speziell zum Löschen des vorhandenen Inhalts von Textfeldern verwendet.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
SendKeys-Befehl Mit diesem Befehl können Sie einen Wert in Textfelder eingeben. Der einzugebende Wert muss als Parameter an
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.SendKeys("guru99");
Angezeigter Befehl Mit diesem Befehl wird ermittelt, ob ein bestimmtes Element auf der Webseite angezeigt wird. Dieser Befehl gibt einen Booleschen Wert zurück; true oder false, abhängig von der Sichtbarkeit des Webelements.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Displayed;
Aktivierter Befehl Mit diesem Befehl wird ermittelt, ob ein bestimmtes Webelement auf der Webseite aktiviert ist. Dieser Befehl gibt einen booleschen Wert zurück; als Ergebnis wahr oder falsch.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Enabled;
Ausgewählter Befehl Dieser Befehl dient dazu, festzustellen, ob ein bestimmtes Web-Element ausgewählt ist. Er wird für Kontrollkästchen, Optionsfelder und Auswahlvorgänge verwendet.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Selected;
Befehl senden: Dieser Befehl ähnelt dem Click-Befehl. Der Unterschied besteht darin, ob das HTML-Formular über eine Schaltfläche vom Typ „Senden“ verfügt. Während der Click-Befehl auf eine beliebige Schaltfläche klickt, klickt der Submit-Befehl nur auf die Schaltflächen mit dem Typ „Submit“.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.submit();
Textbefehl Dieser Befehl gibt den Innentext eines Webelements zurück. Als Ergebnis gibt dieser Befehl einen String-Wert zurück.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String text=element.Text;
TagName-Befehl Dieser Befehl gibt das HTML-Tag eines Webelements zurück. Als Ergebnis wird ein Stringwert zurückgegeben.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  String tagName = element.TagName;
GetCSSValue-Befehl: Diese Methode wird verwendet, um die Farbe eines Webelements in Form einer RGBA-Zeichenfolge (Rot, Grün, Blau und Alpha) zurückzugeben.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String color = element.getCSSValue;

Ausgang– Wenn die Farbe des Elements rot ist, wäre die Ausgabe rgba(255,0,0,1)

Anmerkung zu den obigen Beispielen: Die Tabelle gibt die ursprüngliche Syntax wieder. Im aktuellen Selenium .NET Die Mitglieder sind in Pascal-Case geschrieben — element.Submit() und element.GetCssValue("color") - und GetCssValue nimmt den Namen der CSS-Eigenschaft als Argument.

Dropdown-Befehle:

Dropdown-Operationen in C# können mit der SelectElement-Klasse durchgeführt werden.

Im Folgenden sind die verschiedenen Dropdown-Operationen aufgeführt, die in C# verfügbar sind.

Befehlsname Beschreibung Syntax
SelectByText-Befehl Dieser Befehl wählt eine Option eines Dropdowns basierend auf dem Text der Option aus.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByText("Guru99");
SelectByIndex-Befehl Dieser Befehl wird verwendet, um eine Option basierend auf ihrem Index auszuwählen. Der Dropdown-Index beginnt bei 0.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByIndex("4");
SelectByValue-Befehl Mit diesem Befehl wird eine Option basierend auf ihrem Optionswert ausgewählt.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByValue("Guru99");
Optionsbefehl Mit diesem Befehl wird die Liste der in einer Dropdown-Liste angezeigten Optionen abgerufen.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
List<IWebelement> options = select. Options;
int size = options.Count;
for(int i=0;i<options.size();i++)
{
String value = size.elementAt(i).Text;
Console.writeLine(value);
}

Der obige Code gibt alle Optionen in einem Dropdown-Menü auf der Konsole aus.

IsMultiple-Befehl Dieser Befehl dient dazu, festzustellen, ob es sich bei einer Dropdown-Liste um eine Mehrfachauswahlliste handelt. Eine Mehrfachauswahlliste ermöglicht es dem Benutzer, mehrere Optionen gleichzeitig auszuwählen. Dieser Befehl gibt einen booleschen Wert zurück.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
Boolean status = select.IsMultiple();
DeSelectAll-Befehl Dieser Befehl wird in Dropdown-Menüs mit Mehrfachauswahl verwendet. Dadurch werden die bereits ausgewählten Optionen gelöscht.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectAll();
DeSelectByIndex-Befehl Dieser Befehl wählt einen bereits ausgewählten Wert anhand seines Index ab.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByIndex("4");
DeSelectByValue-Befehl Dieser Befehl deselektiert einen bereits ausgewählten Wert anhand seines Wertes.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByValue("Guru99");
DeSelectByText-Befehl Dieser Befehl deaktiviert einen bereits ausgewählten Wert mithilfe seines Textes.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByText("Guru99");

Die vier folgenden Skripte setzen die oben genannten Befehle in die Anwendung um. Guru99 Demo-Websites. Jede einzelne ist eine vollständige, ausführbare NUnit-Testklasse.

Code Muster

Beispiel 1: Klicken Sie mit XPATH Locator auf einen Link:

Testszenario:

  1. Zur Demo navigieren GuruWebseite 99 – https://demo.guru99.com/test/guru99home/
  2. Maximieren Sie das Fenster
  3. Klicken Sie auf das Menü „Testen“.
  4. Schließen Sie den Browser
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("D:\\3rdparty\\chrome");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();
            IWebelement link = m_driver.FindElement(By.XPath(".//*[@id='rt-header']//div[2]/div/ul/li[2]/a"));
            link.Click();
            m_driver.Close();
        }
    }
}

Beispiel 2: Daten in Text eingebenBox und klicken Sie mit dem XPATH-Locator auf eine Schaltfläche:

Testszenario:

  1. Navigieren Sie zu der Guru99 Demoseite – https://demo.guru99.com/test/guru99home/
  2. Geben Sie Daten in das E-Mail-Textfeld ein
  3. Klicken Sie auf die Schaltfläche „Anmelden“.
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

             
			// Store locator values of email text box and sign up button				
            IWebElement emailTextBox = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-email']"));
            IWebElement signUpButton = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-submit']"));

            emailTextBox.SendKeys("test123@gmail.com");
            signUpButton.Click();
                        
        }
    }
}			

Beispiel 3: Daten in Text eingebenBox und Klicken Sie mit dem CSS-Locator auf eine Schaltfläche:

Testszenario:

  1. Navigieren Sie zu der Guru99 Demoseite – https://demo.guru99.com/test/guru99home/
  2. Geben Sie Daten in das E-Mail-Textfeld ein
  3. Klicken Sie auf die Schaltfläche „Anmelden“.
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

             
			// Store locator values of email text box and sign up button				
            IWebElement emailTextBox = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-email]"));
            IWebElement signUpButton = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-submit]"));

            emailTextBox.SendKeys("test123@gmail.com");
            signUpButton.Click();

             
        }
    }
}

Beispiel 4: Wählen Sie einen Wert im Dropdown-Menü aus:

Testszenario:

  1. Navigieren Sie zu der Guru99 Demoseite – https://demo.guru99.com/test/guru99home/
  2. Klicken Sie auf SAP Link
  3. Geben Sie Daten in die Textfelder „Name“ und „E-Mail“ ein
  4. Wählen Sie einen Wert aus der Dropdown-Liste „Kurs“ aus
  5. Schließen Sie den Browser
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;


namespace Guru99Demo
{
	class TestSelect						
    {
        IWebDriver m_driver;

        [Test]
		public void selectDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

            IWebElement course = m_driver.FindElement(By.XPath(".//*[@id='awf_field-91977689']"));

			var selectTest = new SelectElement(course);
			// Select a value from the dropdown				
            selectTest.SelectByValue("sap-abap");
                        
        }
    }
}

Häufig gestellte Fragen

Arbeiten jederzeit weiterbearbeiten können. Jede Präsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen, Selenium.WebDriver 4.x mit NUnit 3.14 oder NUnit 4, plus NUnit3TestAdapter und Microsoft.NET.Test.Sdk. NUnit 4 zielt auf .NET Framework 4.6.2 oder .NET 6 und höher ab. Überprüfen Sie daher Ihr Projektziel, bevor Sie von den oben genannten Paketen aktualisieren.

Nein. Selenium 4.6 eingeführt Selenium Der Manager lädt den Browsertreiber zur Laufzeit herunter und ordnet ihn zu. Die Übergabe eines Treiberordners an den ChromeDriver-Konstruktor funktioniert weiterhin, ist aber nur erforderlich, wenn ein bestimmter Treiberbuild festgelegt werden muss.

Eine implizite Wartezeit legt für jede Elementabfrage während der gesamten Lebensdauer der IWebDriver-Instanz ein einzelnes Timeout fest. Eine explizite Wartezeit zielt auf ein einzelnes Element und eine Bedingung ab, beispielsweise ob die Abfrage anklickbar oder sichtbar ist. Dadurch schlägt sie schneller fehl und beschreibt die Absicht präziser.

Ja. Markieren Sie die Assembly als parallelisierbar, damit NUnit die Test-Fixtures parallel ausführt. Jeder Test benötigt eine eigene IWebDriver-Instanz. Erstellen Sie den Treiber daher in der SetUp-Methode, anstatt ein statisches Feld gemeinsam zu nutzen. Andernfalls kommt es im selben Browser zu Konflikten zwischen parallelen Tests.

NUnit und MSTest verwenden beide Attribute und gruppieren Tests mit TestFixture oder TestClass. xUnit benötigt keine Klassenattribute und wurde für Parallelverarbeitung entwickelt. Alle drei lassen sich im Test Explorer ausführen; NUnit ist nach wie vor die am häufigsten gewählte Option. Selenium Arbeiten in C#.

KI-Tools schlagen Selektoren anhand eines Seiten-Snapshots vor, reparieren Selektoren, die nach einer UI-Änderung fehlerhaft sind, und wandeln einen geschriebenen Testfall in einen NUnit-Methodenentwurf um. Behandeln Sie jeden Vorschlag als Entwurf und überprüfen Sie die Assertions, bevor Sie die Änderungen übernehmen.

Ja. Anhand eines Kommentars, der das Szenario beschreibt, erstellt Copilot die Elemente „SetUp“, „Test“ und „TearDown“ und schlägt Aufrufe von „FindElement“ im umgebenden Code vor. Überprüfen Sie die Selektoren anhand der Live-Seite, da die generierten Selektoren abgeleitet und nicht geprüft werden.

Selenium Playwright bietet die umfassendste Unterstützung für Grid, Cloud und verschiedene Sprachen sowie eine sehr große bestehende Testumgebung, sodass die Fähigkeiten gefragt bleiben. Playwright ermöglicht eine schnellere Ausführung und integrierte Wartefunktionen. Viele .NET-Teams nutzen beide Frameworks und verwenden denselben NUnit-Runner und dieselben Berichte.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: