Selenium Samouczek C# z przykładem NUnit
Selenium Zakładka Podglą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#, Python, .Net, Ruby, PHP i Perl do kodowania testów automatycznych.
Przegląd języka C#
C# to obiektowy język programowania wywodzący się z C++ i Java. C# pozwala deweloperom budować aplikacje przy użyciu Visual Studio na platformie .Net. Poniżej przedstawiono kluczowe cechy C#.
- Jest to język programowania zorientowany obiektowo
- Wspiera rozwój aplikacji konsolowych, okienkowych i internetowych
- Zapewnia funkcje takie jak enkapsulacja, dziedziczenie i polimorfizm.
Podstawowa składnia języka C#
Program w języku C# musi zawierać następujące sekcje
- Deklaracja przestrzeni nazw
- Zajęcia
- Atrybuty i metody klas
- Główna metoda
- Oświadczenia programowe
Przykład-
Poniżej znajduje się próbka Selenium Przykładowy program w języku C# wyświetlający tekst „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.
- Ostatnia instrukcja to składnia języka C# używana do drukowania instrukcji na konsoli. WriteLine jest metodą klasy „Console.
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) Przejdź do adresu URL
https://visualstudio.microsoft.com/downloads/ i kliknij 'Darmowe pobieranie' przycisk wyświetlany na karcie Społeczność programu Visual Studio
Krok 2) Otwórz pobrany plik exe. Kliknij „Tak”, jeśli zostaniesz poproszony o uprawnienia administratora.
Krok 3) Pojawi się poniższe wyskakujące okienko. Kliknij przycisk „Kontynuuj”.
Pliki zostaną pobrane w sposób pokazany w wyskakującym okienku poniżej.
Krok 4) Na następnym ekranie
Zaznacz pola wyboru dla
- uniwersalny Windows Rozwój platformy
- Tworzenie desktopów .Net
Kliknij „Zainstaluj”.
Poczekaj na zakończenie instalacji każdego komponentu. Pliki mają rozmiar 16 GB i zajmują trochę czasu.
Krok 5) Wyświetli się poniższe okno pop-up. Kliknij przycisk „Restart”.
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.
Krok 7) Na następnym ekranie
- Wybierz motyw kolorystyczny według własnych upodobań
- Kliknij przycisk „Uruchom program Visual Studio”
Krok 8) Wyświetli się ekran „Rozpoczęcie” programu Visual Studio.
Utwórz nowy projekt w programie Visual Studio:
Krok 1) W menu Plik kliknij Nowy > Projekt
Krok 2) Na następnym ekranie
- Wybierz opcję „Visual C#”
- Kliknij aplikację konsolową (.Net Framework)
- Wpisz nazwę jako „Guru99”
- kliknij OK
Krok 3) Poniższy ekran zostanie wyświetlony po pomyślnym utworzeniu projektu.
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
Krok 2) Na następnym ekranie
- Szukaj Selenium na powstałym ekranie
- Wybierz pierwszy wynik wyszukiwania
- Zaznacz pole wyboru projektu
- Kliknij „Zainstaluj”
Krok 3) Kliknij przycisk „OK” na wyskakującym ekranie
Krok 4) Poniższy komunikat zostanie wyświetlony po pomyślnym zainstalowaniu pakietu.
Struktura NUnit: przegląd
NUnit to Testów jednostkowych framework obsługiwany przez Visual Studio i Selenium WebDriver. NUnit jest najszerzej używanym frameworkiem testów jednostkowych dla aplikacji .Net. NUnit prezentuje wyniki testów w czytelnym formacie i pozwala testerowi debugować automatyczne testy.
Aby móc z nich 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
Krok 2) W następnym oknie
- Wyszukaj NUnit
- Wybierz wynik wyszukiwania
- Wybierz Projekt
- Kliknij przycisk Zainstaluj
Krok 3) Pojawi się poniższe wyskakujące okienko. Kliknij przycisk „OK”.
Krok 4) Po zakończeniu instalacji pojawi się poniższy komunikat.
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.
Krok 1) Przejdź do Narzędzia ->NuGet Menedżer pakietów -> Zarządzaj NuGet Pakiety dla rozwiązania. Na tym ekranie
- Wyszukaj adapter NUnitTest
- Kliknij Wynik wyszukiwania
- Wybierz Projekt
- Kliknij przycisk Zainstaluj
Krok 2) Kliknij OK w wyskakującym okienku potwierdzenia. Po zakończeniu instalacji zobaczysz następujący komunikat-
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ą przy użyciu frameworka NUnit.
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
Krok 2) Pojawi się okno tworzenia zajęć.
- Podaj nazwę klasy
- Kliknij przycisk Dodaj
Krok 3) Pojawi się poniższy ekran.
Krok 4) Dodaj następujący kod do utworzonej klasy. Należy pamiętać, że należy określić lokalizację pliku 'chromdriver.exe' podczas inicjalizacji sterownika Chrome.
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”
UWAGA: Podczas budowania może pojawić się błąd typu „Nie zawiera 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”. Wartość domyślna to „Aplikacja konsolowa”.
Krok 5) Po pomyślnym zakończeniu kompilacji musimy otworzyć okno Eksploratora testów. Kliknij Test -> Windows -> 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
Krok 7) Selenium musi otworzyć przeglądarkę z określonym adresem URL i zamknąć przeglądarkę. Status przypadku testowego zostanie zmieniony na „Zaliczony” w oknie Eksploratora 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#.
- Polecenia przeglądarki
- Polecenia elementów sieciowych
- Polecenia rozwijane
Teraz w Selenium Samouczek C Sharp, przestudiujmy Selenium WebDriver wydaje polecenia jedno po drugim
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 otwarcia określonego adresu 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 elementu internetowego
Webelement reprezentuje wszystkie elementy na stronie internetowej. Są one reprezentowane przez znaczniki HTML. Każdy z przycisków, pól tekstowych, linków, obrazów, tabel i ramek należy do Webelements. OperaOperacje na elementach sieciowych można wywołać za pomocą interfejsu IWebelement. Aby wejść w interakcję z elementem sieciowym, musimy znaleźć element na stronie internetowej, a następnie wykonać na nim operacje. Do identyfikacji elementów sieciowych można użyć narzędzi takich jak Firebug i Firepath. Xpath firmy Webelement.
Poniżej znajduje się lista poleceń Webelement dostępnych 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 identyfikacji, czy dany element sieci web jest zaznaczony. To polecenie jest używane dla pól wyboru, przycisków radiowych 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) |
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 określenia, czy lista rozwijana jest listą rozwijaną z możliwością wielokrotnego wyboru; Lista rozwijana wielokrotnego wyboru umożliwia użytkownikowi wybranie więcej niż jednej opcji z listy rozwijanej na raz. 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"); |
Próbki kodu
Przykład 1: Kliknij łącze za pomocą lokalizatora XPATH:
Scenariusz testowy:
- Przejdź do strony internetowej Demo Guru99 – https://demo.guru99.com/test/guru99home/
- Zmaksymalizuj okno
- Kliknij menu „Testowanie”.
- 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:
- Przejdź do strony demonstracyjnej Guru 99 – https://demo.guru99.com/test/guru99home/
- Wprowadź dane do pola tekstowego wiadomości e-mail
- 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:
- Przejdź do strony demonstracyjnej Guru 99 – https://demo.guru99.com/test/guru99home/
- Wprowadź dane do pola tekstowego wiadomości e-mail
- 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:
- Przejdź do strony demonstracyjnej Guru 99 – https://demo.guru99.com/test/guru99home/
- Kliknij na SAP link
- Wprowadź dane w polach tekstowych nazwy i adresu e-mail
- Wybierz wartość z listy rozwijanej Kurs
- 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"); } } }
Podsumowanie
- W celu wykorzystania Selenium Aby użyć WebDriver z C#, należy zainstalować program Visual Studio.
- NUnit to środowisko testowania jednostkowego obsługiwane przez program Visual Studio i Selenium sterownik internetowy
- Aby móc z nich korzystać, musimy zainstalować NUnit Framework i NUnit Test Adapter w programie Visual Studio.
- Framework NUnit można zintegrować z Selenium tworząc klasę testową NUnit i uruchamiając ją przy użyciu frameworka NUnit.
- NUnit umożliwia także testerom używanie adnotacji, takich jak SetUp, Test i TearDown, do wykonywania działań przed i po uruchomieniu testu.
- Selenium Polecenia WebDriver można podzielić na polecenia przeglądarki, polecenia Webelement i polecenia rozwijania.