Selenium Samouczek C#: Framework NUnit z przykładem

⚡ Inteligentne podsumowanie

Selenium WebDriver steruje przeglądarkami z poziomu języka C# za pośrednictwem interfejsu IWebDriver, podczas gdy NUnit dostarcza atrybuty testów, asercje i raporty Test Explorera, które przekształcają kroki przeglądarki w powtarzalne zautomatyzowane testy.

  • 🔘 Łańcuch narzędzi: Visual Studio plus Selenium WebDriver, NUnit i adapter testowy NUnit NuGet pakiety.
  • Konfiguracja projektu: Typem wyjściowym musi być Biblioteka klas, a nie Aplikacja konsolowa, w przeciwnym razie kompilacja się nie powiedzie.
  • Atrybuty NUnit: SetUp otwiera przeglądarkę, Test wykonuje czynności, TearDown zamyka ją.
  • 🧪 Grupy dowodzenia: polecenia przeglądarki, polecenia WebElement i polecenia rozwijane za pośrednictwem SelectElement.
  • 🛠️. Lokalizatory: FindElement akceptuje strategie selektorów XPath i CSS dla każdej interakcji z elementem.
  • Wykonanie: Test Explorer uruchamia klasę i raportuje każdy wynik jako zaliczony lub niezaliczony.

Selenium Automatyzacja języka C# z wykorzystaniem frameworka testowego NUnit

Selenium Przegląd

Selenium to open source, web Testowanie automatyzacji narzędzie, które obsługuje wiele przeglądarek i wiele systemów operacyjnych. Umożliwia testerom korzystanie z wielu języków programowania, takich jak Java, C#, PythonRuby, PHP i Perl do kodowania testów automatycznych. Jeśli dopiero zaczynasz korzystać z tego narzędzia, zacznij od Selenium Tutorial i WebDriver kontra Selenium Porównanie RC.

Selenium zapewnia kontrolę nad przeglądarką; język, w którym ją kontrolujesz, zapewnia strukturę.

Przegląd języka C#

C# to obiektowy język programowania wywodzący się z C++ oraz JavaJęzyk C# umożliwia programistom tworzenie aplikacji za pomocą programu Visual Studio na platformie .NET. Poniżej przedstawiono kluczowe funkcje C#.

  1. Jest to język programowania zorientowany obiektowo
  2. Wspiera rozwój aplikacji konsolowych, okienkowych i internetowych
  3. Zapewnia funkcje takie jak enkapsulacja, dziedziczenie i polimorfizm.

Przed okablowaniem Selenium pomaga rozpoznać kształt prostego programu w języku C#.

Podstawowa składnia języka C#

Program w języku C# musi zawierać następujące sekcje

  1. Deklaracja przestrzeni nazw
  2. Zajęcia
  3. Atrybuty i metody klas
  4. Główna metoda
  5. Oświadczenia programowe

Przykład-

Poniżej znajduje się próbka Selenium Przykładowy program w C# do drukowania tekstu 'Guru99' na konsoli systemowej.

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

Wyjaśnienie:

  • Przestrzeń nazw powyżej Selenium Przykład C# to zbiór wielu klas. Każda przestrzeń nazw musi zostać zadeklarowana przy użyciu słowa kluczowego „using”.
  • Pierwsza instrukcja kodu włącza przestrzeń nazw „System” do naszego programu. Systemowa przestrzeń nazw definiuje podstawowe klasy i zdarzenia używane w języku C#. Przestrzeń nazw, która ma zostać użyta, zależy od wymagań programu.
  • Druga instrukcja deklaruje przestrzeń nazw „FirstProgram” dla klasy „DemoPrint”. Plik AC# może zawierać wiele klas w tej samej przestrzeni nazw.
  • Trzecia instrukcja zawiera deklarację klasy. Klasa może zawierać wiele atrybutów i wiele metod.
  • Czwarta instrukcja zawiera deklarację metody Main. Metoda główna jest punktem wejścia wykonania dla każdej klasy.
  • Ostatnie polecenie to składnia języka C# używana do drukowania polecenia na konsoli. WriteLine to metoda Console klasa. Zwróć uwagę, że punkt wejścia jest zapisany Main z wielką literą M w prawdziwym C#; małą literą main w powyższym przykładzie nie zostanie rozpoznany jako punkt wejścia.

Gdy składnia jest już jasna, następnym krokiem jest instalacja narzędzi, które kompilują i uruchamiają te testy.

Selenium z instalacją C#

Jak skonfigurować program Visual Studio Selenium Sterownik sieciowy:

Teraz w tym Selenium Samouczek języka C#, w którym poznajemy krok po kroku proces konfigurowania programu Visual Studio Selenium Sterownik sieciowy:

Visual Studio to zintegrowane środowisko programistyczne (IDE) używane przez programistów do tworzenia aplikacji na wielu platformach, takich jak: Windows, Android, iOS i aplikacje oparte na chmurze.

Krok 1) Nawiguj do URL

https://visualstudio.microsoft.com/downloads/ i kliknij 'Darmowe pobieranie' przycisk wyświetlany na karcie Społeczność programu Visual Studio

Strona pobierania programu Visual Studio z przyciskiem bezpłatnego pobrania wersji Community

Krok 2) Otwórz pobrany plik exe. Kliknij „Tak”, jeśli zostaniesz poproszony o uprawnienia administratora.

Instalator programu Visual Studio prosi o uprawnienia administratora

Krok 3) Pojawi się poniższe wyskakujące okienko. Kliknij przycisk „Kontynuuj”.

Okno powitalne instalatora programu Visual Studio z przyciskiem Kontynuuj

Pliki zostaną pobrane w sposób pokazany w wyskakującym okienku poniżej.

Instalator programu Visual Studio pobiera pliki składników

Krok 4) Na następnym ekranie

Zaznacz pola wyboru dla

  • uniwersalny Windows Rozwój platformy
  • Rozwój pulpitu .NET

Kliknij „Zainstaluj”.

Ekran obciążenia programu Visual Studio z uniwersalnym Windows Platforma i rozwój komputerów stacjonarnych .NET zakończone sukcesem

Poczekaj na zakończenie instalacji każdego komponentu. Pliki mają rozmiar 16 GB i zajmują trochę czasu.

Pasek postępu instalatora programu Visual Studio dla każdego wybranego komponentu

Krok 5) Wyświetli się poniższe okno pop-up. Kliknij przycisk „Restart”.

Instalator programu Visual Studio wyświetla monit o ponowne uruchomienie komputera

Krok 6) Po ponownym uruchomieniu komputera wyszukaj „Visual Studio” w menu startowym i kliknij wynik wyszukiwania. Pojawi się następujące okno podręczne. Kliknij łącze „Nie teraz, może później”, jeśli nie masz istniejącego konta.

Okienko logowania do programu Visual Studio z linkiem Nie teraz, może później

Krok 7) Na następnym ekranie

  • Wybierz motyw kolorystyczny według własnych upodobań
  • Kliknij przycisk „Uruchom program Visual Studio”

Ekran pierwszego uruchomienia programu Visual Studio umożliwiający wybór motywu kolorów

Krok 8) Wyświetli się ekran „Rozpoczęcie” programu Visual Studio.

Ekran początkowy programu Visual Studio po zakończeniu instalacji

Utwórz nowy projekt w programie Visual Studio:

Krok 1) W menu Plik kliknij Nowy > Projekt

Menu Plik programu Visual Studio z wybranymi opcjami Nowy i Projekt

Krok 2) Na następnym ekranie

  1. Wybierz opcję „Visual C#”
  2. Kliknij aplikację konsolową (.Net Framework)
  3. Wpisz nazwę jako „Guru99 "
  4. kliknij OK

Okno dialogowe Nowy projekt z aplikacją konsoli Visual C# i projektem o nazwie Guru99

Krok 3) Poniższy ekran zostanie wyświetlony po pomyślnym utworzeniu projektu.

Edytor programu Visual Studio pokazujący nowo utworzone GuruProjekt konsoli 99

Skonfiguruj program Visual Studio za pomocą Selenium Sterownik sieciowy:

Krok 1) Przejdź do Narzędzia -> NuGet Menedżer pakietów -> Zarządzaj NuGet Pakiety dla rozwiązania

Ścieżka menu narzędzi do NuGet Menedżer pakietów i zarządzanie NuGet Pakiety dla rozwiązania

Krok 2) Na następnym ekranie

  1. Szukaj Selenium na powstałym ekranie
  2. Wybierz pierwszy wynik wyszukiwania
  3. Zaznacz pole wyboru projektu
  4. Kliknij „Zainstaluj”

NuGet menedżer pakietów z Selenium wynik wyszukiwania i pole wyboru projektu zaznaczone

Krok 3) Kliknij przycisk „OK” na wyskakującym ekranie

NuGet wyskakujące okienko z potwierdzeniem przed Selenium pakiet jest zainstalowany

Krok 4) Poniższy komunikat zostanie wyświetlony po pomyślnym zainstalowaniu pakietu.

NuGet wyjście potwierdzające Selenium WebDriver został pomyślnie zainstalowany

Selenium Teraz można otworzyć przeglądarkę, ale nie można jeszcze zgłosić, czy test został zaliczony. To zadanie frameworka do testów jednostkowych.

Struktura NUnit: przegląd

NUnit to Testów jednostkowych framework obsługiwany przez Visual Studio i Selenium WebDriver. NUnit to najpopularniejszy framework do testów jednostkowych w aplikacjach .NET. NUnit prezentuje wyniki testów w czytelnym formacie i umożliwia testerowi debugowanie testów automatycznych.

Aby móc z niego korzystać, musimy zainstalować NUnit Framework i NUnit Test Adapter w programie Visual Studio.

Kroki, aby zainstalować NUnit Framework

Teraz w tym Selenium dzięki samouczkowi C# nauczmy się procesu instalowania frameworku NUnit:

Krok 1) Przejdź do Narzędzia -> NuGet Menedżer pakietów -> Zarządzaj NuGet Pakiety dla rozwiązania

Menu narzędzi zostało ponownie otwarte w NuGet Menedżer pakietów dla instalacji NUnit

Krok 2) W następnym oknie

  1. Wyszukaj NUnit
  2. Wybierz wynik wyszukiwania
  3. Wybierz Projekt
  4. Kliknij przycisk Zainstaluj

NuGet menedżer pakietów z wynikiem wyszukiwania NUnit wybranym do instalacji

Krok 3) Pojawi się poniższe wyskakujące okienko. Kliknij przycisk „OK”.

NuGet wyskakujące okienko z potwierdzeniem przed zainstalowaniem frameworka NUnit

Krok 4) Po zakończeniu instalacji pojawi się poniższy komunikat.

NuGet komunikat potwierdzający zakończenie instalacji środowiska NUnit

Kroki, aby pobrać adapter testowy NUnit

Teraz w tym samouczku NUnit omówimy kroki pobierania adaptera testowego NUnit:

Należy pamiętać, że poniższe kroki działają tylko na komputerach 32-bitowych. W przypadku komputerów 64-bitowych należy pobrać „NUnit3 Test Adapter”, wykonując ten sam proces, który opisano poniżej.

Aktualne pakiety: nowoczesny projekt instaluje NUnit3TestAdapter Wraz z Microsoft.NET.Test.Sdki starszy NUnitTestAdapter Pakiet nie jest już utrzymywany. W .NET (Core) cały projekt można zbudować za pomocą dotnet new nunit, która doda wszystkie trzy pakiety.

Krok 1) Przejdź do Narzędzia ->NuGet Menedżer pakietów -> Zarządzaj NuGet Pakiety dla rozwiązania. Na tym ekranie

  1. Wyszukaj adapter NUnitTest
  2. Kliknij Wynik wyszukiwania
  3. Wybierz Projekt
  4. Kliknij przycisk Zainstaluj

NuGet Menedżer pakietów wyszukuje NUnitTestAdapter z wybranym projektem

Krok 2) Kliknij OK w wyskakującym okienku potwierdzenia. Po zakończeniu instalacji zobaczysz następujący komunikat-

NuGet komunikat potwierdzający zakończenie instalacji adaptera testowego NUnit

Obie połówki są już zainstalowane, więc następnym krokiem jest ich połączenie w jedną klasę testową.

Selenium i framework NUnit

Integracja selenium z frameworkiem NUnit pozwala testerowi rozróżniać różne klasy testów. NUnit pozwala również testerom używać adnotacji, takich jak SetUp, Test i TearDown, aby wykonywać działania przed i po uruchomieniu testu.

Framework NUnit można zintegrować z Selenium tworząc klasę testową NUnit i uruchamiając ją za pomocą frameworka NUnit. Java odpowiednik tego wzoru jest omówiony w JUnit samouczek dotyczący frameworka, a także omówiono alternatywę .NET dla NUnit w programie Visual Studio TestNG dla Selenium.

Poniżej kroki w tym Selenium Aby utworzyć i uruchomić klasę testową przy użyciu platformy NUnit, potrzebny jest samouczek dotyczący platformy C#.

Kroki tworzenia klasy testowej NUnit w Selenium:

Krok 1) W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt > Dodaj > Klasa

Menu kontekstowe Eksploratora rozwiązań z wybraną opcją Dodaj i klasę

Krok 2) Pojawi się okno tworzenia zajęć.

  1. Podaj nazwę klasy
  2. Kliknij przycisk Dodaj

Okno dialogowe Dodaj nowy element służące do nadania nazwy nowej klasie testowej NUnit

Krok 3) Pojawi się poniższy ekran.

Pusty plik klasy C# utworzony w edytorze Visual Studio

Krok 4) Dodaj poniższy kod do utworzonej klasy. Pamiętaj, że podczas inicjalizacji sterownika Chrome musisz określić lokalizację pliku „chromedriver.exe”. Selenium Wersja 4.6 i nowsze są dostępne Selenium Menedżer, który automatycznie rozwiązuje problem pasującego sterownika, więc new ChromeDriver() bez argumentu ścieżki jest to bieżąca forma — ścieżka poniżej jest zachowana, ponieważ pasuje do zrzutów ekranu.

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

    }
}

Krok 4) Kliknij „Kompiluj” -> „Utwórz rozwiązanie”

Menu kompilacji z wybraną opcją Kompiluj rozwiązanie w programie Visual Studio

UWAGA: Podczas budowania może pojawić się błąd typu „Nie zawiera statycznej metody głównej odpowiedniej dla punktu wejścia”.

Błąd kompilacji zgłaszający brak statycznej metody głównej odpowiedniej dla punktu wejścia

Aby rozwiązać ten problem, przejdź do Projekt > Właściwości i zmień Typ wyjścia na „Biblioteka klas”. Domyślnie jest to „Aplikacja konsolowa”.

Właściwości projektu z typem wyjścia przełączonym na bibliotekę klas

Krok 5) Po pomyślnym zakończeniu kompilacji musimy otworzyć okno Eksploratora testów. Kliknij Test -> Windows -> Eksplorator testów

Ścieżka menu testowego do Windows i Eksplorator testów

Krok 6) Otworzy się okno Eksploratora testów z listą dostępnych testów. Kliknij prawym przyciskiem myszy Eksplorator testów i wybierz opcję Uruchom wybrane testy

Eksplorator testów wyświetlający dostępne testy z opcją Uruchom wybrane testy

Krok 7) Selenium należy otworzyć przeglądarkę z określonym URL i zamknij przeglądarkę. Status przypadku testowego w oknie Eksploratora testów zmieni się na „Zaliczony”.

Eksplorator testów pokazujący wynik testu NUnit oznaczony jako zaliczony

Zdany test dowodzi, że hydraulika działa. Poniżej znajduje się słownictwo, którego będziesz używać do pisania testów.

Selenium Polecenia WebDriver w C#

C# używa interfejsu „IWebDriver” do interakcji z przeglądarką. Poniżej przedstawiono kategorię poleceń dostępnych z Selenium w języku C#.

  1. Polecenia przeglądarki
  2. Polecenia elementów sieciowych
  3. Polecenia rozwijane

Teraz w tym Selenium Samouczek C#, przyjrzyjmy się Selenium Polecenia WebDrivera jedno po drugim. Java odpowiedniki są pokazane w tym pierwszy skrypt WebDriver opis przejścia.

Poniższe polecenia są nadal aktualne IWebDriver powierzchnia w Selenium 4, więc składnia pozostaje niezmieniona.

Polecenia przeglądarki:

Poniżej znajduje się lista poleceń przeglądarki dostępnych w języku C# Selenium.

Nazwa polecenia OPIS Składnia
Polecenie adresu URL To polecenie służy do otwierania określonego URL w przeglądarce.
driver.Url = "https://www.guru99.com"
Tytułowe polecenie To polecenie służy do pobrania tytułu aktualnie otwartej strony internetowej
String title = driver.Title
Polecenie PageSource To polecenie służy do pobrania kodu źródłowego aktualnie otwartej strony internetowej.
String pageSource = driver.PageSource
Zamknij polecenie To polecenie służy do zamykania ostatnio otwartej instancji przeglądarki.
driver.Close();
Opuść polecenie To polecenie służy do zamykania wszystkich otwartych instancji przeglądarki
driver.Quit();
Polecenie powrotu To polecenie służy do przejścia do poprzedniej strony historii przeglądarki.
driver.Navigate().Back();
Dowództwo naprzód To polecenie służy do przejścia do następnej strony historii przeglądarki.
driver.Navigate().Forward()
Odśwież polecenie To polecenie służy do wykonania odświeżenia przeglądarki.
driver.Navigate().Refresh()

Polecenia przeglądarki działają na okno; następna grupa działa na to, co się w nim znajduje.

Polecenia WebElement

WebElement reprezentuje dowolny element na stronie internetowej. Są one reprezentowane przez znaczniki HTML. Przyciski, pola tekstowe, linki, obrazy, tabele i ramki to również WebElementy. Operadziałania na tych elementach są wyzwalane poprzez IWebElement interfejs. Aby wejść w interakcję z WebElement, najpierw znajdź pierwiastek na stronie, a następnie wykonaj na niej operację. Dostępne strategie opisano w lokalizatory w SeleniumNarzędzia programistyczne przeglądarek — lub starsze dodatki Firebug i Firepath, których zrzuty ekranu poniżej są starsze — można wykorzystać do identyfikacji XPath elementu WebElement.

Poniżej przedstawiono polecenia WebElement dostępne w języku C#.

Nazwa polecenia OPIS Składnia
Kliknij polecenie To polecenie służy do kliknięcia elementu Webelement. Aby element był klikalny, musi być widoczny na stronie internetowej. To polecenie służy również do operacji na polach wyboru i przyciskach radiowych.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();
Wyczyść polecenie To polecenie służy konkretnie do czyszczenia istniejącej zawartości pól tekstowych.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
Polecenie WyślijKlucze To polecenie służy do wprowadzania wartości do pól tekstowych. Wartość, która ma zostać wprowadzona, musi zostać przekazana jako parametr do
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.SendKeys("guru99");
Wyświetlane polecenie To polecenie służy do identyfikacji, czy konkretny element jest wyświetlany na stronie internetowej. To polecenie zwraca wartość logiczną; true lub false w zależności od widoczności elementu internetowego.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Displayed;
Włączone polecenie To polecenie służy do sprawdzenia, czy dany element sieciowy jest włączony na stronie internetowej. To polecenie zwraca wartość logiczną; w rezultacie prawda lub fałsz.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Enabled;
Wybrane polecenie To polecenie służy do sprawdzenia, czy dany element sieci jest zaznaczony. Polecenie to jest używane w przypadku pól wyboru, przycisków opcji i operacji zaznaczania.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Selected;
Wyślij polecenie: Polecenie to jest podobne do polecenia kliknięcia. Różnica polega na tym, czy formularz HTML posiada przycisk typu Prześlij. Podczas gdy polecenie kliknięcia klika dowolny przycisk, polecenie przesyłania klika tylko przyciski z typem przesyłania.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.submit();
Polecenie tekstowe To polecenie zwraca tekst wewnętrzny elementu internetowego. W rezultacie to polecenie zwraca wartość ciągu.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String text=element.Text;
Polecenie NazwaZmiennej To polecenie zwraca znacznik HTML elementu internetowego. Jako wynik zwraca wartość ciągu.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  String tagName = element.TagName;
Polecenie GetCSSValue: Ta metoda służy do zwracania koloru elementu internetowego w postaci ciągu rgba (czerwony, zielony, niebieski i alfa).
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String color = element.getCSSValue;

Wydajność– Jeśli kolor elementu jest czerwony, wyjście będzie miało postać rgba(255,0,0,1)

Uwaga dotycząca powyższych próbek: tabela odtwarza oryginalną składnię. W obecnej wersji Selenium .NET członkowie są w formacie Pascala — element.Submit() oraz element.GetCssValue("color") - I GetCssValue przyjmuje nazwę właściwości CSS jako argument.

Polecenia rozwijane:

Operacje rozwijane w języku C# można wykonać przy użyciu klasy SelectElement.

Poniżej przedstawiono różne operacje rozwijane dostępne w języku C#.

Nazwa polecenia OPIS Składnia
Polecenie WybierzJak Tekst To polecenie wybiera opcję z listy rozwijanej na podstawie tekstu opcji.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByText("Guru99");
Polecenie WybierzByIndex To polecenie służy do wybierania opcji na podstawie jej indeksu. Indeks listy rozwijanej zaczyna się od 0.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByIndex("4");
Polecenie WybierzWedług Wartości To polecenie służy do wybierania opcji na podstawie jej wartości.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByValue("Guru99");
Opcje Polecenie To polecenie służy do pobrania listy opcji wyświetlanych w menu rozwijanym.
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);
}

Powyższy kod wypisuje wszystkie opcje na konsoli w ramach listy rozwijanej.

Jest wielokrotne, polecenie To polecenie służy do identyfikacji, czy lista rozwijana jest listą wielokrotnego wyboru. Lista wielokrotnego wyboru pozwala użytkownikowi wybrać więcej niż jedną opcję jednocześnie. To polecenie zwraca wartość logiczną.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
Boolean status = select.IsMultiple();
Polecenie Usuń zaznaczenie wszystkiego To polecenie jest używane w menu rozwijanym z możliwością wielokrotnego wyboru. Czyści opcje, które zostały już wybrane.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectAll();
Polecenie DeSelectByIndex To polecenie odznacza już wybraną wartość za pomocą jej indeksu.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByIndex("4");
Polecenie DeSelectByValue To polecenie odznacza już wybraną wartość, wykorzystując jej wartość.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByValue("Guru99");
Polecenie DeSelectByText To polecenie odznacza już wybraną wartość za pomocą jej tekstu.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByText("Guru99");

Cztery poniższe skrypty wykorzystują powyższe polecenia do działania Guru99 witryn demonstracyjnych. Każda z nich to kompletna, uruchamialna klasa testowa NUnit.

Code próbki

Przykład 1: Kliknij łącze za pomocą lokalizatora XPATH:

Scenariusz testowy:

  1. Przejdź do wersji demonstracyjnej Guru99 strona internetowa – https://demo.guru99.com/test/guru99home/
  2. Zmaksymalizuj okno
  3. Kliknij menu „Testowanie”.
  4. Zamknij przeglądarkę
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();
        }
    }
}

Przykład 2: Wprowadzanie danych do TekstuBox i kliknij przycisk za pomocą lokalizatora XPATH:

Scenariusz testowy:

  1. Nawiguj do Guru99 strona demonstracyjna – https://demo.guru99.com/test/guru99home/
  2. Wprowadź dane do pola tekstowego wiadomości e-mail
  3. Kliknij przycisk zarejestruj się
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();
                        
        }
    }
}			

Przykład 3: Wprowadzanie danych do TekstuBox i kliknij przycisk za pomocą lokalizatora CSS:

Scenariusz testowy:

  1. Nawiguj do Guru99 strona demonstracyjna – https://demo.guru99.com/test/guru99home/
  2. Wprowadź dane do pola tekstowego wiadomości e-mail
  3. Kliknij przycisk zarejestruj się
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();

             
        }
    }
}

Przykład 4: Wybierz wartość z listy rozwijanej:

Scenariusz testowy:

  1. Nawiguj do Guru99 strona demonstracyjna – https://demo.guru99.com/test/guru99home/
  2. Kliknij na SAP link
  3. Wprowadź dane w polach tekstowych nazwy i adresu e-mail
  4. Wybierz wartość z listy rozwijanej Kurs
  5. Zamknij przeglądarkę
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");
                        
        }
    }
}

FAQ

Zastosowanie Selenium.WebDriver 4.x z NUnit 3.14 lub NUnit 4, plus NUnit3TestAdapter i Microsoft.NET.Test.Sdk. NUnit 4 jest przeznaczony dla .NET Framework 4.6.2 lub .NET 6 i nowszych wersji, dlatego przed uaktualnieniem z pakietów pokazanych powyżej sprawdź cel swojego projektu.

Nie. Selenium 4.6 wprowadzono Selenium Menedżer, który pobiera i dopasowuje sterownik przeglądarki w czasie wykonywania. Przekazanie folderu sterownika do konstruktora ChromeDriver nadal działa, ale jest potrzebne tylko wtedy, gdy trzeba przypiąć konkretną kompilację sterownika.

Niejawne oczekiwanie stosuje pojedynczy limit czasu do każdego wyszukiwania elementu przez cały czas istnienia instancji IWebDriver. Jawne oczekiwanie dotyczy jednego elementu i jednego warunku, takiego jak klikalność lub widoczność, dzięki czemu kończy się szybciej i dokładniej opisuje intencję.

Tak. Oznacz zestaw jako Parallelizable, a NUnit uruchomi instalacje równolegle. Każdy test musi posiadać własną instancję IWebDriver, więc utwórz sterownik w SetUp zamiast udostępniać pole statyczne, w przeciwnym razie testy równoległe będą kolidować w tej samej przeglądarce.

Zarówno NUnit, jak i MSTest używają atrybutów i grupują testy za pomocą TestFixture lub TestClass. xUnit nie potrzebuje atrybutu klasy i został zaprojektowany z myślą o paralelizmie. Wszystkie trzy działają w Eksploratorze Testów; NUnit pozostaje najpopularniejszym wyborem. Selenium praca w C#.

Narzędzia AI proponują lokalizatory na podstawie migawki strony, naprawiają selektory, które uległy awarii po zmianie interfejsu użytkownika, i konwertują pisemny przypadek testowy na wersję roboczą metody NUnit. Traktuj każdą sugestię jak wersję roboczą i przejrzyj asercje przed zatwierdzeniem.

Tak. Na podstawie komentarza opisującego scenariusz, Copilot tworzy elementy SetUp, Test i TearDown i sugeruje wywołania FindElement z otaczającego kodu. Należy zweryfikować lokalizatory na stronie rzeczywistej, ponieważ wygenerowane selektory są wnioskowane, a nie sprawdzane.

Selenium Playwright oferuje najszersze wsparcie dla siatki, chmury i języków oraz bardzo rozbudowaną bazę testów, dzięki czemu ta umiejętność pozostaje dostępna. Playwright oferuje szybsze wykonywanie i wbudowaną funkcję oczekiwania. Wiele zespołów .NET korzysta z obu tych narzędzi, współdzieląc ten sam program uruchamiający i raporty NUnit.

Podsumuj ten post następująco: