Selenium C# vodič: NUnit okvir s primjerom
⚡ Pametni sažetak
Selenium WebDriver pokreće preglednike iz C#-a putem IWebDriver sučelja, dok NUnit pruža atribute testiranja, tvrdnje i izvješća Test Explorera koji te korake preglednika pretvaraju u ponovljive automatizirane testove.
Selenium SAŽETAK
Selenium je open-source, web Testiranje automatizacije alat koji podržava više preglednika i više operativnih sustava. Omogućuje testerima korištenje više programskih jezika kao što su Java, C#, Python, Ruby, PHP i Perl za kodiranje automatiziranih testova. Ako ste novi u alatu, počnite s Selenium udžbenik i WebDriver u odnosu na Selenium Usporedba RC-a.
Selenium pruža kontrolu preglednika; jezik kojim ga pokrećete pruža strukturu.
C# pregled
C# je objektno orijentirani programski jezik izveden iz C++ i JavaC# omogućuje programerima izradu aplikacija pomoću Visual Studija na .NET platformi. Slijede ključne značajke C#.
- To je objektno orijentirani programski jezik
- Podržava razvoj konzole, Windows i web aplikacija
- Omogućuje značajke kao što su enkapsulacija, nasljeđivanje i polimorfizam.
Prije ožičenja Selenium pomaže prepoznati oblik običnog C# programa.
Osnovna sintaksa C#
Program u C#-u mora sadržavati sljedeće dijelove
- Deklaracija imenskog prostora
- Nastava
- Atributi i metode klase
- Glavna metoda
- Programske izjave
Primjer-
Ispod je uzorak Selenium Primjer C# programa za ispis teksta 'Guru99' na konzoli sustava.
using System; namespace FirstProgram { class DemoPrint { static void main(){ Console.WriteLine("Guru99"); } } }
Objašnjenje:
- Prostor imena u gornjem Selenium C# primjer je kolekcija više klasa. Svaki prostor imena mora biti deklariran pomoću ključne riječi 'using'.
- Prva izjava koda uključuje imenski prostor 'Sustav' u naš program. Prostor imena sustava definira temeljne klase i događaje koji se koriste u C#. Prostor imena koji će se koristiti ovisi o zahtjevima programa.
- Druga izjava deklarira prostor imena "FirstProgram" za klasu "DemoPrint." AC# datoteka može sadržavati više klasa unutar istog prostora naziva.
- Treća izjava uključuje deklaraciju klase. Klasa može sadržavati više atributa i više metoda.
- Četvrta izjava uključuje deklaraciju glavne metode. Glavna metoda je ulazna točka izvršenja za svaku klasu.
- Posljednja naredba je C# sintaksa koja se koristi za ispis naredbe u konzolu. WriteLine je metoda od
Consolerazred. Imajte na umu da je ulazna točka napisanaMains velikim M u pravom C#; malim slovommainu gornjem primjeru neće biti prepoznat kao ulazna točka.
Nakon što je sintaksa jasna, sljedeći zadatak je instaliranje alata koji kompajlira i pokreće te testove.
Selenium s C# postavkom
Kako postaviti Visual Studio s Selenium Web Driver:
Sada u ovome Selenium C# vodič, naučimo korak po korak postupak postavljanja Visual Studija Selenium Web Driver:
Visual Studio je integrirano razvojno okruženje (IDE) koje programeri koriste za izradu aplikacija na više platformi kao što su Windows, Android, iOS i aplikacije temeljene na oblaku.
Korak 1) Dođite na URL
https://visualstudio.microsoft.com/downloads/ i kliknite na 'Besplatno preuzimanje' prikazan na kartici Visual Studio Community
Korak 2) Otvorite preuzeti exe. Kliknite na 'Da' ako se od vas zatraže administratorska prava.
Korak 3) Pojavit će se donji skočni prozor. Pritisnite gumb 'Nastavi'.
Datoteke će se preuzeti kao što je prikazano u skočnom prozoru u nastavku.
Korak 4) Na sljedećem ekranu
Odaberite potvrdne okvire za
- Univerzalan Windows Razvoj platforme
- Razvoj .NET desktopa
Kliknite na 'Instaliraj'.
Pričekajte da se instalacija svake komponente završi. Datoteke su veličine 16 GB i trebat će vremena.
Korak 5) Prikazat će se donji skočni prozor. Pritisnite gumb 'Restart'.
Korak 6) Nakon što se stroj ponovno pokrene, potražite "Visual Studio" na početnom izborniku i kliknite na rezultat pretraživanja. Pojavit će se sljedeći skočni prozor. Kliknite vezu "Ne sada, možda kasnije" ako nemate postojeći račun.
Korak 7) Na sljedećem ekranu
- Odaberite temu boja po svom ukusu
- Kliknite gumb "Pokreni Visual Studio"
Korak 8) Pojavit će se zaslon Visual Studio 'Get Started'.
Napravite novi projekt u Visual Studiju:
Korak 1) U izborniku Datoteka kliknite Novo > Projekt
Korak 2) Na sljedećem ekranu
- Odaberite opciju 'Visual C#'
- Kliknite aplikaciju konzole (.Net Framework)
- Unesite ime kao "Guru99 "
- Kliknite U redu
Korak 3) Zaslon ispod će se prikazati nakon što je projekt uspješno kreiran.
Postavite Visual Studio s Selenium Web Driver:
Korak 1) Idite na Alati -> NuGet Upravitelj paketa -> Upravljanje NuGet Paketi za rješenje
Korak 2) Na sljedećem ekranu
- Traži za Selenium na rezultirajućem zaslonu
- Odaberite prvi rezultat pretraživanja
- Označite potvrdni okvir projekta
- Kliknite na "Instaliraj"
Korak 3) Kliknite gumb 'OK' na skočnom zaslonu
Korak 4) Poruka u nastavku bit će prikazana kada se paket uspješno instalira.
Selenium sada može otvoriti preglednik, ali još ne može izvijestiti je li test prošao. To je posao okvira za jedinično testiranje.
NUnit Framework: Pregled
NUnit je Ispitivanje jedinice okvir koji podržava Visual Studio i Selenium WebDriver. NUnit je najčešće korišteni okvir za jedinično testiranje .NET aplikacija. NUnit prikazuje rezultate testova u čitljivom formatu i omogućuje testerima otklanjanje pogrešaka u automatiziranim testovima.
Moramo instalirati NUnit Framework i NUnit Test Adapter na Visual Studio kako bismo ga koristili.
Koraci za instalaciju NUnit Framework
Sada u ovome Selenium uz C# tutorijal, naučimo proces instaliranja NUnit okvira:
Korak 1) Idite na Alati -> NuGet Upravitelj paketa -> Upravljanje NuGet Paketi za rješenje
Korak 2) U sljedećem prozoru
- Potražite NUnit
- Odaberite rezultat pretraživanja
- Odaberite Projekt
- Kliknite Instaliraj
Korak 3) Pojavit će se donji skočni prozor. Pritisnite gumb 'Ok'.
Korak 4) Poruka u nastavku pojavit će se nakon dovršetka instalacije.
Koraci za preuzimanje NUnit Test Adaptera
Sada ćemo u ovom NUnit vodiču pokriti korake za preuzimanje NUnit Test Adaptera:
Imajte na umu da koraci u nastavku rade samo za 32-bitne strojeve. Za 64-bitne strojeve trebate preuzeti 'NUnit3 testni adapter' slijedeći isti postupak kao što je navedeno u nastavku.
Trenutni paketi: moderni projekt instalira NUnit3TestAdapter Zajedno s Microsoft.NET.Test.Sdki stariji NUnitTestAdapter Paket se više ne održava. Na .NET-u (Core) cijeli projekt može se scaffoldirati s dotnet new nunit, što vam dodaje sva tri paketa.
Korak 1) Idite na Alati ->NuGet Upravitelj paketa -> Upravljanje NuGet Paketi za rješenje. Na tom ekranu,
- Pretražite NUnitTestAdapter
- Pritisnite Rezultat pretraživanja
- Odaberite Projekt
- Kliknite Instaliraj
Korak 2) Pritisnite OK u skočnom prozoru za potvrdu. Nakon završetka instalacije vidjet ćete sljedeću poruku-
Obje polovice su instalirane, pa je sljedeći korak njihovo spajanje u jednu testnu klasu.
Selenium i okvir NUnit
Integracija selena s okvirom NUnit omogućuje testeru da razlikuje različite klase testova. NUnit također omogućuje testerima korištenje komentara kao što su SetUp, Test i TearDown za izvođenje radnji prije i nakon izvođenja testa.
NUnit okvir se može integrirati sa Selenium stvaranjem NUnit testne klase i pokretanjem testne klase pomoću NUnit okvira. Java ekvivalent ovog obrasca obuhvaćen je u JUnit tutorijal o okvirua uz to se raspravlja i o .NET alternativi za NUnit unutar Visual Studija TestNG za Selenium.
U nastavku su navedeni koraci Selenium Upute za okvir C# potrebne su za stvaranje i izvođenje testne klase pomoću okvira NUnit.
Koraci za stvaranje klase NUnit Test u Selenium:
Korak 1) U Solution Exploreru desnom tipkom miša kliknite projekt > Dodaj > Klasa
Korak 2) Pojavit će se prozor za stvaranje klase.
- Dajte ime razredu
- Pritisnite gumb Dodaj
Korak 3) Pojavit će se donji zaslon.
Korak 4) Dodajte sljedeći kod u kreiranu klasu. Imajte na umu da morate navesti lokaciju datoteke 'chromedriver.exe' tijekom inicijalizacije Chromeovog upravljačkog programa. Selenium Isporučuje se verzija 4.6 i novije Selenium Voditelj, što automatski rješava odgovarajući upravljački program, tako da new ChromeDriver() bez argumenta puta je trenutni oblik — donji put se zadržava jer odgovara snimkama zaslona.
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(); } } }
Korak 4) Kliknite na 'Build' -> 'Build Solution'
NAPOMENA: Možete dobiti pogrešku poput "Ne sadrži statičku 'glavnu' metodu prikladnu za ulaznu točku" kada gradite
Da biste to riješili, idite na Projekt > Svojstva i promijenite vrstu izlaza u "Biblioteka klasa". Zadana vrijednost je "Konzolna aplikacija".
Korak 5) Nakon što je izgradnja uspješna, moramo otvoriti prozor Test Explorer. Kliknite Test -> Windows -> Test Explorer
Korak 6) Otvara se prozor Test Explorer s popisom dostupnih testova. Desnom tipkom miša kliknite Test Explorer i odaberite Pokreni odabrane testove
Korak 7) Selenium morate otvoriti preglednik s navedenim URL i zatvorite preglednik. Status testnog slučaja promijenit će se u 'Prolaz' u prozoru Test Explorer.
Položen ispit dokazuje da vodovod radi. Slijedi vokabular kojim ćete zapravo pisati testove.
Selenium WebDriver naredbe u C#
C# koristi sučelje 'IWebDriver' za interakcije preglednika. Sljedeće su kategorije dostupnih naredbi Selenium u C#.
- Naredbe preglednika
- Naredbe web elementa
- Padajuće naredbe
Sada u ovome Selenium C# tutorial, proučimo Selenium WebDriver naredbe jednu po jednu. Java kolege su prikazane u ovome prva WebDriver skripta prolazak.
Donje naredbe su i dalje trenutne IWebDriver površina u Selenium 4, tako da se sintaksa prenosi nepromijenjena.
Naredbe preglednika:
Slijedi popis naredbi preglednika dostupnih u C# sa Selenium.
| Naziv naredbe | Description | Sintaksa |
|---|---|---|
| Url naredba | Ova naredba se koristi za otvaranje određenog URL u pregledniku. |
driver.Url = "https://www.guru99.com"
|
| Naredba naslova | Ova se naredba koristi za dohvaćanje naslova stranice koja je trenutno otvorena |
String title = driver.Title
|
| PageSource naredba | Ova naredba se koristi za dohvaćanje izvornog koda web stranice koja je trenutno otvorena. |
String pageSource = driver.PageSource
|
| Zatvori naredbu | Ova se naredba koristi za zatvaranje nedavno otvorene instance preglednika. |
driver.Close(); |
| Odustani od naredbe | Ova se naredba koristi za zatvaranje svih otvorenih instanci preglednika |
driver.Quit(); |
| Naredba za povratak | Ova se naredba koristi za navigaciju na prethodnu stranicu povijesti preglednika. |
driver.Navigate().Back(); |
| Zapovijed naprijed | Ova se naredba koristi za navigaciju na sljedeću stranicu povijesti preglednika. |
driver.Navigate().Forward() |
| Osvježi naredbu | Ova se naredba koristi za izvođenje osvježavanja preglednika. |
driver.Navigate().Refresh() |
Naredbe preglednika djeluju na prozor; sljedeća grupa djeluje na ono što je unutar njega.
Naredbe WebElementa
WebElement predstavlja bilo koji element na web stranici. Predstavljen je HTML oznakama. Gumbi, tekstualni okviri, poveznice, slike, tablice i okviri su sve WebElementi. Operadjelovanja na te elemente pokreću se putem IWebElement sučelje. Za interakciju s WebElementom, prvo pronaći element na stranici, a zatim izvršiti operaciju na njoj. Dostupne strategije su obrađene u lokatori u SeleniumAlati za razvojne programere preglednika - ili stariji dodaci Firebug i Firepath od kojih su snimljene snimke zaslona u nastavku - mogu se koristiti za identifikaciju XPath WebElementa.
Sljedeće su WebElement naredbe dostupne u C#.
| Naziv naredbe | Description | Sintaksa |
|---|---|---|
| Pritisnite naredbu | Ova se naredba koristi za klik na Webelement. Da bi se na element moglo kliknuti, element mora biti vidljiv na web stranici. Ova se naredba također koristi za operacije potvrdnih okvira i radio gumba. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Click();
|
| Očisti naredbu | Ova se naredba posebno koristi za brisanje postojećeg sadržaja tekstnih okvira. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
element.Clear();
|
| Naredba SendKeys | Ova se naredba koristi za unos vrijednosti u tekstualne okvire. Vrijednost koju treba unijeti mora se proslijediti kao parametar |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.SendKeys("guru99"); |
| Prikazana naredba | Ova se naredba koristi za prepoznavanje je li određeni element prikazan na web stranici. Ova naredba vraća Booleovu vrijednost; točno ili netočno ovisno o vidljivosti web elementa. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Displayed; |
| Omogućena naredba | Ova se naredba koristi za prepoznavanje je li određeni web element omogućen na web stranici. Ova naredba vraća Booleovu vrijednost; istinito ili lažno kao rezultat. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Enabled; |
| Odabrana naredba | Ova se naredba koristi za prepoznavanje je li određeni web element odabran. Ova se naredba koristi za potvrdne okvire, radio gumbe i operacije odabira. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Selected; |
| Pošalji naredbu: | Ova je naredba slična klik naredbi, razlika je u tome ima li HTML obrazac gumb s tipom Pošalji. Dok naredba click klikne na bilo koji gumb, naredba submit klikne samo na gumbe s tipom submit. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.submit();
|
| Tekstna naredba | Ova naredba vraća unutarnji tekst Webelementa. Ova naredba kao rezultat vraća vrijednost niza. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String text=element.Text; |
| Naredba TagName | Ova naredba vraća HTML oznaku web elementa. Kao rezultat vraća vrijednost niza. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String tagName = element.TagName; |
| GetCSSValue naredba: | Ova se metoda koristi za vraćanje boje web elementa u obliku rgba niza (crvena, zelena, plava i alfa). |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String color = element.getCSSValue; Izlaz– Ako je boja elementa crvena, izlaz bi bio rgba(255,0,0,1) |
Napomena o gornjim uzorcima: Tablica reproducira izvornu sintaksu. U trenutnom Selenium .NET članovi su u Pascalu s velikim i malim slovima — element.Submit() i element.GetCssValue("color") - i GetCssValue uzima naziv CSS svojstva kao argument.
Padajuće naredbe:
Operacije s padajućim izbornikom u C# mogu se postići pomoću klase SelectElement.
Slijede razne padajuće operacije dostupne u C#.
| Naziv naredbe | Description | Sintaksa |
|---|---|---|
| Naredba SelectByText | Ova naredba odabire opciju padajućeg izbornika na temelju teksta opcije. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByText("Guru99"); |
| Naredba SelectByIndex | Ova se naredba koristi za odabir opcije na temelju njenog indeksa. Indeks padajućeg izbornika počinje od 0. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByIndex("4"); |
| Naredba SelectByValue | Ova se naredba koristi za odabir opcije na temelju njezine vrijednosti opcije. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByValue("Guru99"); |
| Naredba za opcije | Ova se naredba koristi za dohvaćanje popisa opcija prikazanih u padajućem izborniku. |
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); } Gornji kod ispisuje sve opcije na konzoli unutar padajućeg izbornika. |
| IsMultiple naredba | Ova se naredba koristi za prepoznavanje je li padajući izbornik višestruki odabir; Padajući izbornik s višestrukim odabirom omogućuje korisniku odabir više opcija istovremeno. Ova naredba vraća logičku vrijednost. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); Boolean status = select.IsMultiple(); |
| Naredba DeSelectAll | Ova se naredba koristi u višestrukim padajućim izbornicima. Briše opcije koje su već odabrane. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectAll(); |
| Naredba DeSelectByIndex | Ova naredba poništava odabir već odabrane vrijednosti pomoću njezinog indeksa. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByIndex("4"); |
| Naredba DeSelectByValue | Ova naredba poništava odabir već odabrane vrijednosti pomoću njezine vrijednosti. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByValue("Guru99"); |
| Naredba DeSelectByText | Ova naredba poništava odabir već odabrane vrijednosti koristeći njezin tekst. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByText("Guru99"); |
Četiri skripte u nastavku koriste gornje naredbe da rade protiv Guru99 demo stranica. Svaka od njih je kompletna, pokrenuta NUnit testna klasa.
Code Uzorci
Primjer 1: kliknite na vezu pomoću XPATH lokatora:
Testni scenarij:
- Idi na Demo Guru99 web stranica – https://demo.guru99.com/test/guru99home/
- Maksimizirajte prozor
- Kliknite na izbornik 'Testiranje'
- Zatvorite preglednik
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(); } } }
Primjer 2: Unos podataka u tekstBox i kliknite na gumb koristeći XPATH lokator:
Testni scenarij:
- Dođite na Guru99 demo stranica – https://demo.guru99.com/test/guru99home/
- Unesite podatke u tekstni okvir e-pošte
- Kliknite na gumb za prijavu
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(); } } }
Primjer 3: Unos podataka u tekstBox i kliknite na gumb koristeći CSS lokator:
Testni scenarij:
- Dođite na Guru99 demo stranica – https://demo.guru99.com/test/guru99home/
- Unesite podatke u tekstni okvir e-pošte
- Kliknite na gumb za prijavu
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(); } } }
Primjer 4: Odaberite vrijednost na padajućem izborniku:
Testni scenarij:
- Dođite na Guru99 demo stranica – https://demo.guru99.com/test/guru99home/
- Kliknite na SAP link
- Unesite podatke u tekstualne okvire za ime i e-poštu
- Odaberite vrijednost s padajućeg izbornika Tečaj
- Zatvorite preglednik
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"); } } }
































