Selenium C#-opplæring med NUnit-eksempel
Selenium Oversikt
Selenium er en åpen kildekode, web Automatiseringstesting verktøy som støtter flere nettlesere og flere operativsystemer. Det lar testere bruke flere programmeringsspråk som f.eks Java, C#, Python, .Net, Ruby, PHP og Perl for koding av automatiserte tester.
C# Oversikt
C# er et objektorientert programmeringsspråk avledet fra C++ og Java. C# lar utviklere bygge applikasjoner ved å bruke Visual Studio på .Net-plattformen. Følgende er hovedtrekkene til C#.
- Det er et objektorientert programmeringsspråk
- Den støtter utvikling av konsoller, vinduer og nettbaserte applikasjoner
- Den gir funksjoner som innkapsling, arv og polymorfisme.
Grunnleggende syntaks for C#
Et program i C# må inneholde følgende seksjoner
- Navneområdeerklæring
- Klasser
- Klasseattributter og metoder
- Hovedmetode
- Programerklæringer
Eksempel-
Nedenfor er et eksempel Selenium C# eksempelprogram for å skrive ut teksten 'Guru99' på systemkonsollen.
using System; namespace FirstProgram { class DemoPrint { static void main(){ Console.WriteLine("Guru99"); } } }
Forklaring:
- Et navneområde ovenfor Selenium C# eksempel er en samling av flere klasser. Hvert navneområde må deklareres med nøkkelordet 'bruker'.
- Den første setningen i koden inkluderer navneområdet 'System' i programmet vårt. Systemnavneområdet definerer de grunnleggende klassene og hendelsene som brukes i C#. Navneområdet som skal brukes avhenger av programkravet.
- Den andre setningen er å erklære et navneområde "FirstProgram" for klassen "DemoPrint." AC#-filen kan inneholde flere klasser innenfor samme navneområde.
- Den tredje setningen inkluderer klasseerklæringen. En klasse kan inneholde flere attributter og flere metoder.
- Den fjerde setningen inkluderer en erklæring om hovedmetoden. Hovedmetoden er inngangspunktet for utførelse for hver klasse.
- Den siste setningen er C#-syntaksen som brukes for å skrive ut en setning til konsollen. WriteLine er en metode i klassen 'Console.
Selenium med C#-oppsett
Hvordan sette opp Visual Studio med Selenium WebDriver:
Nå i dette Selenium C#-veiledning, la oss lære trinn for trinn-prosessen for å sette opp Visual Studio med Selenium WebDriver:
Visual Studio er et integrert utviklingsmiljø (IDE) som brukes av utviklere til å bygge applikasjoner på tvers av flere plattformer som f.eks. Windows, Android, iOS og skybaserte applikasjoner.
Trinn 1) Naviger til URL-en
https://visualstudio.microsoft.com/downloads/ og klikk på 'Gratis nedlasting' knappen vist på Visual Studio Community-fanen
Trinn 2) Åpne den nedlastede exe-filen. Klikk på "Ja" hvis du blir spurt om administratorrettigheter.
Trinn 3) Popupen nedenfor vises. Klikk på "Fortsett"-knappen.
Filer vil bli lastet ned som vist i popup-vinduet nedenfor.
Trinn 4) I neste skjermbilde,
Velg avmerkingsboksene for
- Universell Windows Plattformutvikling
- .Net desktop utvikling
Klikk på "Installer".
Vent til installasjonen av hver komponent er fullført. Filer er på 16 GB og vil ta tid.
Trinn 5) Popup-vinduet nedenfor vil vises. Klikk på 'Start på nytt'-knappen.
Trinn 6) Når maskinen er startet på nytt, søk etter "Visual Studio" på startmenyen og klikk på søkeresultatet. Følgende popup vises. Klikk på koblingen "Ikke nå, kanskje senere" hvis du ikke har en eksisterende konto.
Trinn 7) I neste skjermbilde,
- Velg fargetema du liker
- Klikk på knappen "Start Visual Studio"
Trinn 8) Visual Studio 'Kom i gang'-skjermen vises.
Opprett et nytt prosjekt i Visual Studio:
Trinn 1) I Fil-menyen klikker du Ny > Prosjekt
Trinn 2) I neste skjermbilde,
- Velg alternativet 'Visual C#'
- Klikk på Console App (.Net Framework)
- Skriv inn navn som "Guru99"
- klikk OK
Trinn 3) Skjermbildet nedenfor vil vises når prosjektet er opprettet.
Sett opp Visual Studio med Selenium WebDriver:
Trinn 1) Naviger til Verktøy -> NuGet Pakkebehandling -> Administrer NuGet Pakker for løsning
Trinn 2) I neste skjermbilde
- Søk etter Selenium på den resulterende skjermen
- Velg det første søkeresultatet
- Merk av for prosjekt
- Klikk på 'Installer'
Trinn 3) Klikk på 'OK'-knappen i popup-skjermen
Trinn 4) Meldingen nedenfor vil vises når pakken er vellykket installert.
NUnit Framework: Oversikt
NUnit er Enhetstesting rammeverk støttet av Visual Studio og Selenium WebDriver. NUnit er det mest brukte rammeverket for enhetstesting for .Net-applikasjoner. NUnit presenterer testresultatene i et lesbart format og lar en tester feilsøke de automatiserte testene.
Vi må installere NUnit Framework og NUnit Test Adapter på Visual Studio for å bruke det.
Trinn for å installere NUnit Framework
Nå i dette Selenium med C#-opplæringen, la oss lære prosessen for å installere NUnit-rammeverket:
Trinn 1) Naviger til Verktøy -> NuGet Pakkebehandling -> Administrer NuGet Pakker for løsning
Trinn 2) I neste vindu
- Søk etter NUnit
- Velg søkeresultatet
- Velg Prosjekt
- Klikk Installer
Trinn 3) Popupen nedenfor vises. Klikk på 'Ok'-knappen.
Trinn 4) Meldingen nedenfor vil vises når installasjonen er fullført.
Trinn for å laste ned NUnit Test Adapter
Nå i denne NUnit-opplæringen vil vi dekke trinnene for å laste ned NUnit Test Adapter:
Vær oppmerksom på at trinnene nedenfor bare fungerer for 32-bits maskiner. For 64-bits maskiner må du laste ned 'NUnit3 Test Adapter' ved å følge samme prosess som nevnt nedenfor.
Trinn 1) Naviger til Verktøy ->NuGet Pakkebehandling -> Administrer NuGet Pakker for løsning. På den skjermen,
- Søk i NUnitTestAdapter
- Klikk Søkeresultat
- Velg Prosjekt
- Klikk Installer
Trinn 2) Klikk OK på popup-vinduet for bekreftelse. Når installasjonen er fullført vil du se følgende melding-
Selenium og NUnit rammeverk
Integrasjon av selen med NUnit-rammeverket gjør at en tester kan skille mellom ulike testklasser. NUnit lar også testere bruke merknader som SetUp, Test og TearDown for å utføre handlinger før og etter å ha kjørt testen.
NUnit rammeverk kan integreres med Selenium ved å lage en NUnit-testklasse og kjøre testklassen ved å bruke NUnit-rammeverket.
Nedenfor trinn i dette Selenium C#-rammeverkveiledning er nødvendig for å lage og kjøre en testklasse ved å bruke NUnit-rammeverket.
Trinn for å lage en NUnit-testklasse i Selenium:
Trinn 1) I Solution Explorer, Høyreklikk på prosjekt > Legg til > Klasse
Trinn 2) Klasseopprettingsvinduet vises.
- Gi et navn til klassen
- Klikk på Legg til-knappen
Trinn 3) Skjermbildet nedenfor vil vises.
Trinn 4) Legg til følgende kode til den opprettede klassen. Vær oppmerksom på at du må spesifisere plasseringen av 'chromdriver.exe'-filen under initialisering av chrome-driveren.
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(); } } }
Trinn 4) Klikk på 'Bygg' -> 'Bygg løsning'
NOTAT: Du kan få en feilmelding som "Inneholder ikke en statisk 'hoved'-metode som er egnet for et inngangspunkt" når du bygger
For å løse dette Gå til Prosjekt > Egenskaper og endre utdatatype til "Klassebibliotek." Standard er "Konsollapplikasjon."
Trinn 5) Når byggingen er vellykket, må vi åpne Test Explorer-vinduet. Klikk på Test -> Windows -> Test Explorer
Trinn 6) Test Explorer-vinduet åpnes med listen over tilgjengelige tester. Høyreklikk på Test Explorer og velg Kjør valgte tester
Trinn 7) Selenium må åpne nettleseren med spesifisert URL og lukke nettleseren. Testtilfelles status vil endres til 'Bestått' i Test Explorer-vinduet.
Selenium WebDriver-kommandoer i C#
C# bruker grensesnittet 'IWebDriver' for nettleserinteraksjoner. Følgende er kategorien av kommandoer tilgjengelig med Selenium i C #.
- Browser kommandoer
- Web Element-kommandoer
- Dropdown-kommandoer
Nå i Selenium C Sharp tutorial, la oss studere Selenium WebDriver-kommandoer én etter én
Nettleserkommandoer:
Følgende er en liste over nettleserkommandoer tilgjengelig i C# med Selenium.
Kommandonavn | Tekniske beskrivelser | syntax |
---|---|---|
URL-kommando | Denne kommandoen brukes til å åpne en spesifisert URL i nettleseren. |
driver.Url = "https://www.guru99.com" |
Tittel kommando | Denne kommandoen brukes til å hente sidetittelen til nettsiden som er åpen for øyeblikket |
String title = driver.Title |
Sidekilde-kommando | Denne kommandoen brukes til å hente kildekoden til nettsiden som er åpen for øyeblikket. |
String pageSource = driver.PageSource |
Lukk kommando | Denne kommandoen brukes til å lukke den nylig åpnede nettleserforekomsten. |
driver.Close(); |
Avslutt kommando | Denne kommandoen brukes til å lukke alle åpne nettleserforekomster |
driver.Quit(); |
Tilbakekommando | Denne kommandoen brukes til å navigere til forrige side i nettleserloggen. |
driver.Navigate().Back(); |
Fremover kommando | Denne kommandoen brukes til å navigere til neste side i nettleserloggen. |
driver.Navigate().Forward() |
Oppdater kommando | Denne kommandoen brukes til å utføre nettleseroppdatering. |
driver.Navigate().Refresh() |
Webelement-kommandoer
Et webelement representerer alle elementene på en nettside. De er representert av HTML-koder. Hver av knappene, tekstboksene, koblingene, bildene, tabellene og rammene faller inn under Webelements. Operasjoner på webelementer kan utløses ved hjelp av IWebelement-grensesnittet. For å samhandle med et webelement, må vi finne elementet på nettsiden og deretter utføre operasjoner på det. Verktøy som Firebug og Firepath kan brukes til å identifisere Xpath av Webelement.
Følgende er listen over Webelement-kommandoer tilgjengelig i C#.
Kommandonavn | Tekniske beskrivelser | syntax |
---|---|---|
Klikk kommando | Denne kommandoen brukes til å klikke på et webelement. For at elementet skal være klikkbart, må elementet være synlig på nettsiden. Denne kommandoen brukes også til avmerkingsbokser og alternativknappoperasjoner. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Click(); |
Fjern kommando | Denne kommandoen brukes spesielt for å tømme eksisterende innhold i tekstbokser. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Clear(); |
SendKeys kommando | Denne kommandoen brukes til å legge inn en verdi i tekstbokser. Verdien som skal legges inn må sendes som en parameter til |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.SendKeys("guru99"); |
Vist kommando | Denne kommandoen brukes til å identifisere om et bestemt element vises på nettsiden. Denne kommandoen returnerer en boolsk verdi; sant eller usant avhengig av synligheten til webelementet. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Displayed; |
Aktivert kommando | Denne kommandoen brukes til å identifisere om et bestemt webelement er aktivert på nettsiden. Denne kommandoen returnerer en boolsk verdi; sant eller usant som et resultat. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Enabled; |
Valgt kommando | Denne kommandoen brukes til å identifisere om et bestemt webelement er valgt. Denne kommandoen brukes for avmerkingsbokser, alternativknapper og utvalgte operasjoner. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Selected; |
Send inn kommando: | Denne kommandoen ligner på klikkkommando, Forskjellen ligger i om HTML-skjemaet har en knapp med typen Send. Mens klikkkommandoen klikker på en hvilken som helst knapp, sender kommandoen klikker på de eneste knappene med typen send. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.submit(); |
Tekstkommando | Denne kommandoen returnerer innerteksten til et webelement. Denne kommandoen returnerer en strengverdi som et resultat. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String text=element.Text; |
TagName-kommandoen | Denne kommandoen returnerer HTML-koden til et webelement. Den returnerer en strengverdi som resultat. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String tagName = element.TagName; |
GetCSSValue-kommando: | Denne metoden brukes til å returnere fargen til et webelement i form av en rgba-streng (rød, grønn, blå og alfa). |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String color = element.getCSSValue; Produksjon– Hvis fargen på elementet er rød, vil utdata være rgba(255,0,0,1) |
Dropdown-kommandoer:
Dropdown-operasjoner i C# kan oppnås ved å bruke SelectElement-klassen.
Følgende er de forskjellige rullegardinoperasjonene som er tilgjengelige i C#.
Kommandonavn | Tekniske beskrivelser | syntax |
---|---|---|
SelectByText-kommando | Denne kommandoen velger et alternativ for en rullegardin basert på teksten til alternativet. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByText("Guru99"); |
SelectByIndex Command | Denne kommandoen brukes til å velge et alternativ basert på indeksen. Indeks for rullegardinmenyen starter på 0. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByIndex("4"); |
SelectByValue Command | Denne kommandoen brukes til å velge et alternativ basert på alternativverdien. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByValue("Guru99"); |
Alternativer Kommando | Denne kommandoen brukes til å hente listen over alternativer som vises i en rullegardin. |
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); } Koden ovenfor skriver ut alle alternativene på konsollen i en rullegardin. |
IsMultiple kommando | Denne kommandoen brukes til å identifisere om en rullegardin er en rullegardin med flere valg; En rullegardin med flere valg lar brukeren velge mer enn ett alternativ i en rullegardin om gangen. Denne kommandoen returnerer en boolsk verdi. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); Boolean status = select.IsMultiple(); |
DeSelectAll-kommandoen | Denne kommandoen brukes i rullegardinmenyene med flere valg. Den sletter alternativene som allerede er valgt. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectAll(); |
DeSelectByIndex-kommandoen | Denne kommandoen fjerner valget av en allerede valgt verdi ved å bruke indeksen. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByIndex("4"); |
DeSelectByValue-kommandoen | Denne kommandoen fjerner valget av en allerede valgt verdi ved å bruke verdien. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByValue("Guru99"); |
DeSelectByText-kommandoen | Denne kommandoen fjerner markeringen av en allerede valgt verdi ved å bruke teksten. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByText("Guru99"); |
Kodeeksempler
Eksempel 1: Klikk på en lenke ved å bruke XPATH Locator:
Testscenario:
- Naviger til Demo Guru99 nettside – https://demo.guru99.com/test/guru99home/
- Maksimer vinduet
- Klikk på "Testing"-menyen
- Lukk nettleseren
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(); } } }
Eksempel 2: Legge inn data i tekstBox og klikk på en knapp ved å bruke XPATH-lokatoren:
Testscenario:
- Naviger til Guru 99-demosiden – https://demo.guru99.com/test/guru99home/
- Skriv inn data i e-posttekstboksen
- Klikk på registreringsknappen
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(); } } }
Eksempel 3: Legge inn data i tekstBox og klikk på en knapp ved hjelp av CSS-lokalisering:
Testscenario:
- Naviger til Guru 99-demosiden – https://demo.guru99.com/test/guru99home/
- Skriv inn data i e-posttekstboksen
- Klikk på registreringsknappen
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(); } } }
Eksempel 4: Velg en verdi i rullegardinmenyen:
Testscenario:
- Naviger til Guru 99-demosiden – https://demo.guru99.com/test/guru99home/
- Klikk på SAP link
- Skriv inn data i tekstbokser for navn og e-post
- Velg en verdi fra rullegardinmenyen Kurs
- Lukk nettleseren
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"); } } }
Sammendrag
- For å kunne bruke Selenium WebDriver med C#, du må installere Visual Studio.
- NUnit er rammeverket for enhetstesting som støttes av Visual Studio og Selenium webdriver
- Vi må installere NUnit Framework og NUnit Test Adapter på Visual Studio for å bruke det.
- NUnit rammeverk kan integreres med Selenium ved å lage en NUnit-testklasse og kjøre testklassen ved å bruke NUnit-rammeverket.
- NUnit lar også testere bruke merknader som SetUp, Test og TearDown for å utføre handlinger før og etter å ha kjørt testen.
- Selenium WebDriver-kommandoer kan kategoriseres i nettleserkommandoer, webelementkommandoer og rullegardinkommandoer.