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#.

  1. Det er et objektorientert programmeringsspråk
  2. Den støtter utvikling av konsoller, vinduer og nettbaserte applikasjoner
  3. Den gir funksjoner som innkapsling, arv og polymorfisme.

Grunnleggende syntaks for C#

Et program i C# må inneholde følgende seksjoner

  1. Navneområdeerklæring
  2. Klasser
  3. Klasseattributter og metoder
  4. Hovedmetode
  5. 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

Sett opp Visual Studio med Selenium webdriver

Trinn 2) Åpne den nedlastede exe-filen. Klikk på "Ja" hvis du blir spurt om administratorrettigheter.

Sett opp Visual Studio med Selenium webdriver

Trinn 3) Popupen nedenfor vises. Klikk på "Fortsett"-knappen.

Sett opp Visual Studio med Selenium WebDrive

Filer vil bli lastet ned som vist i popup-vinduet nedenfor.

Sett opp Visual Studio med Selenium WebDrive

Trinn 4) I neste skjermbilde,

Velg avmerkingsboksene for

  • Universell Windows Plattformutvikling
  • .Net desktop utvikling

Klikk på "Installer".

Sett opp Visual Studio med Selenium WebDrive

Vent til installasjonen av hver komponent er fullført. Filer er på 16 GB og vil ta tid.

Sett opp Visual Studio med Selenium WebDrive

Trinn 5) Popup-vinduet nedenfor vil vises. Klikk på 'Start på nytt'-knappen.

Sett opp Visual Studio med Selenium WebDrive

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.

Sett opp Visual Studio med Selenium WebDrive

Trinn 7) I neste skjermbilde,

  • Velg fargetema du liker
  • Klikk på knappen "Start Visual Studio"

Sett opp Visual Studio med Selenium WebDrive

Trinn 8) Visual Studio 'Kom i gang'-skjermen vises.

Sett opp Visual Studio med Selenium WebDrive

Opprett et nytt prosjekt i Visual Studio:

Trinn 1) I Fil-menyen klikker du Ny > Prosjekt

Lag et nytt prosjekt i Visual Studio

Trinn 2) I neste skjermbilde,

  1. Velg alternativet 'Visual C#'
  2. Klikk på Console App (.Net Framework)
  3. Skriv inn navn som "Guru99"
  4. klikk OK

Lag et nytt prosjekt i Visual Studio

Trinn 3) Skjermbildet nedenfor vil vises når prosjektet er opprettet.

Lag et nytt prosjekt i Visual Studio

Sett opp Visual Studio med Selenium WebDriver:

Trinn 1) Naviger til Verktøy -> NuGet Pakkebehandling -> Administrer NuGet Pakker for løsning

Sett opp Visual Studio med Selenium webdriver

Trinn 2) I neste skjermbilde

  1. Søk etter Selenium på den resulterende skjermen
  2. Velg det første søkeresultatet
  3. Merk av for prosjekt
  4. Klikk på 'Installer'

Sett opp Visual Studio med Selenium webdriver

Trinn 3) Klikk på 'OK'-knappen i popup-skjermen

Sett opp Visual Studio med Selenium webdriver

Trinn 4) Meldingen nedenfor vil vises når pakken er vellykket installert.

Sett opp Visual Studio med Selenium webdriver

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

Installer NUnit Framework

Trinn 2) I neste vindu

  1. Søk etter NUnit
  2. Velg søkeresultatet
  3. Velg Prosjekt
  4. Klikk Installer

Installer NUnit Framework

Trinn 3) Popupen nedenfor vises. Klikk på 'Ok'-knappen.

Installer NUnit Framework

Trinn 4) Meldingen nedenfor vil vises når installasjonen er fullført.

Installer NUnit Framework

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,

  1. Søk i NUnitTestAdapter
  2. Klikk Søkeresultat
  3. Velg Prosjekt
  4. Klikk Installer

Last ned NUnit Test Adapter

Trinn 2) Klikk OK på popup-vinduet for bekreftelse. Når installasjonen er fullført vil du se følgende melding-

Last ned NUnit Test Adapter

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

Opprett en NUnit-testklasse i Selenium

Trinn 2) Klasseopprettingsvinduet vises.

  1. Gi et navn til klassen
  2. Klikk på Legg til-knappen

Opprett en NUnit-testklasse i Selenium

Trinn 3) Skjermbildet nedenfor vil vises.

Opprett en NUnit-testklasse i Selenium

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'

Opprett en NUnit-testklasse i Selenium

NOTAT: Du kan få en feilmelding som "Inneholder ikke en statisk 'hoved'-metode som er egnet for et inngangspunkt" når du bygger

Opprett en NUnit-testklasse i Selenium

For å løse dette Gå til Prosjekt > Egenskaper og endre utdatatype til "Klassebibliotek." Standard er "Konsollapplikasjon."

Opprett en NUnit-testklasse i Selenium

Trinn 5) Når byggingen er vellykket, må vi åpne Test Explorer-vinduet. Klikk på Test -> Windows -> Test Explorer

Opprett en NUnit-testklasse i Selenium

Trinn 6) Test Explorer-vinduet åpnes med listen over tilgjengelige tester. Høyreklikk på Test Explorer og velg Kjør valgte tester

Opprett en NUnit-testklasse i Selenium

Trinn 7) Selenium må åpne nettleseren med spesifisert URL og lukke nettleseren. Testtilfelles status vil endres til 'Bestått' i Test Explorer-vinduet.

Opprett en NUnit-testklasse i Selenium

Selenium WebDriver-kommandoer i C#

C# bruker grensesnittet 'IWebDriver' for nettleserinteraksjoner. Følgende er kategorien av kommandoer tilgjengelig med Selenium i C #.

  1. Browser kommandoer
  2. Web Element-kommandoer
  3. 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:

  1. Naviger til Demo Guru99 nettside – https://demo.guru99.com/test/guru99home/
  2. Maksimer vinduet
  3. Klikk på "Testing"-menyen
  4. 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:

  1. Naviger til Guru 99-demosiden – https://demo.guru99.com/test/guru99home/
  2. Skriv inn data i e-posttekstboksen
  3. 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:

  1. Naviger til Guru 99-demosiden – https://demo.guru99.com/test/guru99home/
  2. Skriv inn data i e-posttekstboksen
  3. 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:

  1. Naviger til Guru 99-demosiden – https://demo.guru99.com/test/guru99home/
  2. Klikk på SAP link
  3. Skriv inn data i tekstbokser for navn og e-post
  4. Velg en verdi fra rullegardinmenyen Kurs
  5. 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.