Selenium C# vodič s primjerom NUnit

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, .Net, Ruby, PHP i Perl za kodiranje automatiziranih testova.

C# pregled

C# je objektno orijentirani programski jezik izveden iz C++ i Java. C# omogućuje razvojnim programerima izradu aplikacija koristeći Visual Studio na .Net platformi. Sljedeće su ključne značajke C#.

  1. To je objektno orijentirani programski jezik
  2. Podržava razvoj konzole, Windows i web aplikacija
  3. Omogućuje značajke kao što su enkapsulacija, nasljeđivanje i polimorfizam.

Osnovna sintaksa C#

Program u C# mora sadržavati sljedeće odjeljke

  1. Deklaracija imenskog prostora
  2. Nastava
  3. Atributi i metode klase
  4. Glavna metoda
  5. Programske izjave

Primjer-

Ispod je uzorak Selenium C# primjer programa za ispis teksta 'Guru99' na sistemskoj konzoli.

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 izjava je C# sintaksa koja se koristi za ispis izjave na konzolu. WriteLine je metoda klase 'Console.

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 do URL-a

https://visualstudio.microsoft.com/downloads/ i kliknite na 'Besplatno preuzimanje' prikazan na kartici Visual Studio Community

Postavite Visual Studio pomoću Selenium webdriver

Korak 2) Otvorite preuzeti exe. Kliknite na 'Da' ako se od vas zatraže administratorska prava.

Postavite Visual Studio pomoću Selenium webdriver

Korak 3) Pojavit će se donji skočni prozor. Pritisnite gumb 'Nastavi'.

Postavite Visual Studio pomoću Selenium WebDrive

Datoteke će se preuzeti kao što je prikazano u skočnom prozoru u nastavku.

Postavite Visual Studio pomoću Selenium WebDrive

Korak 4) Na sljedećem ekranu

Odaberite potvrdne okvire za

  • Univerzalan Windows Razvoj platforme
  • .Net razvoj desktopa

Kliknite na 'Instaliraj'.

Postavite Visual Studio pomoću Selenium WebDrive

Pričekajte da se instalacija svake komponente završi. Datoteke su veličine 16 GB i trebat će vremena.

Postavite Visual Studio pomoću Selenium WebDrive

Korak 5) Prikazat će se donji skočni prozor. Pritisnite gumb 'Restart'.

Postavite Visual Studio pomoću Selenium WebDrive

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.

Postavite Visual Studio pomoću Selenium WebDrive

Korak 7) Na sljedećem ekranu

  • Odaberite temu boja po svom ukusu
  • Pritisnite gumb "Pokreni Visual Studio"

Postavite Visual Studio pomoću Selenium WebDrive

Korak 8) Pojavit će se zaslon Visual Studio 'Get Started'.

Postavite Visual Studio pomoću Selenium WebDrive

Napravite novi projekt u Visual Studiju:

Korak 1) U izborniku Datoteka kliknite Novo > Projekt

Stvorite novi projekt u Visual Studiju

Korak 2) Na sljedećem ekranu

  1. Odaberite opciju 'Visual C#'
  2. Kliknite aplikaciju konzole (.Net Framework)
  3. Unesite ime kao "Guru99"
  4. Kliknite U redu

Stvorite novi projekt u Visual Studiju

Korak 3) Zaslon ispod će se prikazati nakon što je projekt uspješno kreiran.

Stvorite novi projekt u Visual Studiju

Postavite Visual Studio s Selenium Web Driver:

Korak 1) Idite na Alati -> NuGet Upravitelj paketa -> Upravljanje NuGet Paketi za rješenje

Postavite Visual Studio pomoću Selenium webdriver

Korak 2) Na sljedećem ekranu

  1. Traži za Selenium na rezultirajućem zaslonu
  2. Odaberite prvi rezultat pretraživanja
  3. Označite potvrdni okvir projekta
  4. Kliknite na "Instaliraj"

Postavite Visual Studio pomoću Selenium webdriver

Korak 3) Kliknite gumb 'OK' na skočnom zaslonu

Postavite Visual Studio pomoću Selenium webdriver

Korak 4) Poruka u nastavku bit će prikazana kada se paket uspješno instalira.

Postavite Visual Studio pomoću Selenium webdriver

NUnit Framework: Pregled

NUnit je Ispitivanje jedinice okvir koji podržava Visual Studio i Selenium WebDriver. NUnit je najčešće korišten okvir za testiranje jedinica za .Net aplikacije. NUnit predstavlja rezultate testa u čitljivom formatu i omogućuje ispitivaču otklanjanje pogrešaka u automatiziranim testovima.

Moramo instalirati NUnit Framework i NUnit Test Adapter na Visual Studio kako bismo ga mogli koristiti.

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

Instalirajte NUnit Framework

Korak 2) U sljedećem prozoru

  1. Potražite NUnit
  2. Odaberite rezultat pretraživanja
  3. Odaberite Projekt
  4. Kliknite Instaliraj

Instalirajte NUnit Framework

Korak 3) Pojavit će se donji skočni prozor. Pritisnite gumb 'Ok'.

Instalirajte NUnit Framework

Korak 4) Poruka u nastavku pojavit će se nakon dovršetka instalacije.

Instalirajte NUnit Framework

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.

Korak 1) Idite na Alati ->NuGet Upravitelj paketa -> Upravljanje NuGet Paketi za rješenje. Na tom ekranu,

  1. Pretražite NUnitTestAdapter
  2. Pritisnite Rezultat pretraživanja
  3. Odaberite Projekt
  4. Kliknite Instaliraj

Preuzmite NUnit Test Adapter

Korak 2) Pritisnite OK u skočnom prozoru za potvrdu. Nakon završetka instalacije vidjet ćete sljedeću poruku-

Preuzmite NUnit Test Adapter

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 izvođenjem testne klase pomoću NUnit okvira.

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

Napravite NUnit Test Class In Selenium

Korak 2) Pojavit će se prozor za stvaranje klase.

  1. Dajte ime razredu
  2. Pritisnite gumb Dodaj

Napravite NUnit Test Class In Selenium

Korak 3) Pojavit će se donji zaslon.

Napravite NUnit Test Class In Selenium

Korak 4) Dodajte sljedeći kod kreiranoj klasi. Imajte na umu da trebate navesti lokaciju datoteke 'chromdriver.exe' tijekom inicijalizacije upravljačkog programa za 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();
        }

    }
}

Korak 4) Kliknite na 'Build' -> 'Build Solution'

Napravite NUnit Test Class In Selenium

NAPOMENA: Možete dobiti pogrešku poput "Ne sadrži statičku 'glavnu' metodu prikladnu za ulaznu točku" kada gradite

Napravite NUnit Test Class In Selenium

Da biste riješili ovaj problem, idite na Projekt > Svojstva i promijenite vrstu izlaza u “Biblioteka razreda”. Zadana postavka je "Konzolna aplikacija".

Napravite NUnit Test Class In Selenium

Korak 5) Nakon što je izgradnja uspješna, moramo otvoriti prozor Test Explorer. Kliknite Test -> Windows -> Test Explorer

Napravite NUnit Test Class In Selenium

Korak 6) Otvara se prozor Test Explorer s popisom dostupnih testova. Desnom tipkom miša kliknite Test Explorer i odaberite Pokreni odabrane testove

Napravite NUnit Test Class In Selenium

Korak 7) Selenium mora otvoriti preglednik s navedenim URL-om i zatvoriti preglednik. Status testnog slučaja bit će promijenjen u 'Prošao' u prozoru Test Explorera.

Napravite NUnit Test Class In Selenium

Selenium WebDriver naredbe u C#

C# koristi sučelje 'IWebDriver' za interakcije preglednika. Sljedeće su kategorije dostupnih naredbi Selenium u C#.

  1. Naredbe preglednika
  2. Naredbe web elementa
  3. Padajuće naredbe

Sada u Selenium C Sharp vodič, proučimo Selenium WebDriver naređuje jednu po jednu

Naredbe preglednika:

Slijedi popis naredbi preglednika dostupnih u C# sa Selenium.

Naziv naredbe Description Sintaksa
Url naredba Ova se naredba koristi za otvaranje određenog URL-a 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()

Webelement naredbe

Webelement predstavlja sve elemente na web stranici. Oni su predstavljeni HTML oznakama. Svaki od gumba, tekstnih okvira, poveznica, slika, tablica i okvira spada pod Webelements. Operacije na web elementima mogu se pokrenuti pomoću sučelja IWebelement. Za interakciju s Webelementom, moramo pronaći element na web-stranici i zatim izvesti operacije na njemu. Alati kao što su Firebug i Firepath mogu se koristiti za identifikaciju Xpath tvrtke Webelement.

Slijedi popis Webelement naredbi dostupnih 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)

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 utvrđivanje je li padajući izbornik višestruki odabir; Padajući izbornik s višestrukim odabirom omogućuje korisniku odabir više od jedne opcije u padajućem izborniku odjednom. Ova naredba vraća Booleovu 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");

Uzorci koda

Primjer 1: kliknite na vezu pomoću XPATH lokatora:

Testni scenarij:

  1. Idite na web stranicu Demo Guru99 – https://demo.guru99.com/test/guru99home/
  2. Maksimizirajte prozor
  3. Kliknite na izbornik 'Testiranje'
  4. 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:

  1. Idite na demo stranicu Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Unesite podatke u tekstni okvir e-pošte
  3. 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:

  1. Idite na demo stranicu Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Unesite podatke u tekstni okvir e-pošte
  3. 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:

  1. Idite na demo stranicu Guru 99 – https://demo.guru99.com/test/guru99home/
  2. Kliknite na SAP link
  3. Unesite podatke u tekstualne okvire za ime i e-poštu
  4. Odaberite vrijednost s padajućeg izbornika Tečaj
  5. 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");
                        
        }
    }
}

Rezime

  • Da biste mogli koristiti Selenium WebDriver sa C#, trebate instalirati Visual Studio.
  • NUnit je okvir za testiranje jedinica koji podržavaju Visual Studio i Selenium mrežni pogonitelj
  • Moramo instalirati NUnit Framework i NUnit Test Adapter na Visual Studio kako bismo ga mogli koristiti.
  • NUnit okvir se može integrirati sa Selenium stvaranjem NUnit testne klase i izvođenjem testne klase pomoću NUnit okvira.
  • 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.
  • Selenium Naredbe WebDrivera mogu se kategorizirati u naredbe preglednika, naredbe Webelementa i padajuće naredbe.