Selenium C# Tutorial med NUnit Eksempel

Selenium Oversigt

Selenium er en open source, web Test af automatisering værktøj, der understøtter flere browsere og flere operating systemer. Det giver testere mulighed for at bruge flere programmeringssprog såsom Java, C#, Python, .Net, Ruby, PHP og Perl til kodning af automatiserede tests.

C# Oversigt

C# er et objektorienteret programmeringssprog afledt af C++ og Java. C# giver udviklere mulighed for at bygge applikationer ved hjælp af Visual Studio på .Net-platformen. Folloenwing er nøgletræk ved C#.

  1. Det er et objektorienteret programmeringssprog
  2. Det understøtter udvikling af konsol, windows og webbaserede applikationer
  3. Det giver funktioner såsom indkapsling, arv og polymorfi.

Grundlæggende syntaks for C#

Et program i C# skal indeholde following sektioner

  1. Navneområdeerklæring
  2. Klasser
  3. Klasseattributter og metoder
  4. Hovedmetode
  5. Programerklæringer

Eksempel-

Nedenfor er et eksempel Selenium C# eksempelprogram til at udskrive teksten 'Guru99' på systemkonsollen.

using System;
namespace FirstProgram {
class DemoPrint {
static void main(){
    Console.WriteLine("Guru99");
	}
  }
}

Forklaring:

  • Et navneområde i ovenstående Selenium C# eksempel er en samling af flere klasser. Hvert navneområde skal deklareres ved hjælp af nøgleordet 'bruger'.
  • Den første sætning af koden inkluderer navneområdet 'System' i vores program. Systemnavneområdet definerer de grundlæggende klasser og hændelser, der bruges i C#. Det navneområde, der skal bruges, afhænger af programkravet.
  • Den anden sætning er at erklære et navneområde "FirstProgram" for klassen "DemoPrint." AC#-filen kan indeholde flere klasser inden for det samme navneområde.
  • Den tredje erklæring omfatter klasseerklæringen. En klasse kan indeholde flere attributter og flere metoder.
  • Den fjerde erklæring indeholder en erklæring om hovedmetoden. Hovedmetoden er indgangspunktet for udførelse for hver klasse.
  • Den sidste sætning er C#-syntaksen, der bruges til at udskrive en sætning til konsollen. WriteLine er en metode af klassen 'Console.

Selenium med C#-opsætning

Sådan konfigureres Visual Studio med Selenium WebDriver:

Nu i dette Selenium C#-tutorial, lad os lære trin for trin-processen at konfigurere Visual Studio med Selenium WebDriver:

Visual Studio er et integreret udviklingsmiljø (IDE), der bruges af udviklere til at bygge applikationer på tværs af flere platforme som f.eks Windows, Android, iOS og Cloud-baserede applikationer.

Trin 1) Naviger til URL'en

https://visualstudio.microsoft.com/downloads/ og klik på 'Gratis download' knap displayed on Visual Studio Community fanen

Set Up Visual Studio Med Selenium webdriver

Trin 2) Åbn den downloadede exe. Klik på 'Ja', hvis du bliver bedt om administratorrettigheder.

Set Up Visual Studio Med Selenium webdriver

Trin 3) Nedenstående popup vises. Klik på knappen 'Fortsæt'.

Set Up Visual Studio Med Selenium WebDrive

Filer vil blive downloadet som vist i pop op-vinduet nedenfor.

Set Up Visual Studio Med Selenium WebDrive

Trin 4) På næste skærmbillede

Vælg checkenboxes for

  • Universal Windows Udvikling af platforme
  • .Net desktop udvikling

Klik på 'Installer'.

Set Up Visual Studio Med Selenium WebDrive

Vent på, at installationen af ​​hver komponent er fuldført. Filer er 16 GB store og vil tage tid.

Set Up Visual Studio Med Selenium WebDrive

Trin 5) Nedenstående pop op vil blive vistyed. Klik på knappen 'Genstart'.

Set Up Visual Studio Med Selenium WebDrive

Trin 6) Når maskinen er genstartet, søg efter "Visual Studio” på startmenuen og klik på søgeresultatet. Folloenwing popup vises. Klik på "Ikke nu, måske later” link, hvis du ikke har en eksisterende konto.

Set Up Visual Studio Med Selenium WebDrive

Trin 7) På næste skærmbillede

  • Vælg farvetema efter din smag
  • Klik på knappen "Start Visual Studio'"

Set Up Visual Studio Med Selenium WebDrive

Trin 8) Visual Studio Skærmbilledet 'Kom i gang' vises.

Set Up Visual Studio Med Selenium WebDrive

Opret et nyt projekt i Visual Studio:

Trin 1) Klik på Ny > Projekt i menuen Filer

Opret et nyt projekt i Visual Studio

Trin 2) På næste skærmbillede

  1. Vælg indstillingen 'Visuel C#'
  2. Klik på Console App (.Net Framework)
  3. Indtast navn som "Guru99"
  4. klik på OK

Opret et nyt projekt i Visual Studio

Trin 3) Nedenstående skærm vil blive vistyed når projektet er oprettet.

Opret et nyt projekt i Visual Studio

Opsætning Visual Studio med Selenium WebDriver:

Trin 1) Naviger til Værktøjer -> NuGet Pakkeadministrator -> Administrer NuGet Pakker til løsning

Set Up Visual Studio Med Selenium webdriver

Trin 2) I næste skærmbillede

  1. Søg efter Selenium på den resulterende skærm
  2. Vælg det første søgeresultat
  3. Tjek projekttjekketbox
  4. Klik på 'Installer'

Set Up Visual Studio Med Selenium webdriver

Trin 3) Klik på 'OK' knappen i pop op-skærmen

Set Up Visual Studio Med Selenium webdriver

Trin 4) Nedenstående meddelelse vil blive vistyed når pakken er installeret.

Set Up Visual Studio Med Selenium webdriver

NUnit Framework: Oversigt

NUnit er Enhedstest rammer understøttet af Visual Studio , Selenium WebDriver. NUnit er den mest udbredte enhedstestramme til .Net-applikationer. NUnit præsenterer testresultaterne i en readable format og giver en tester mulighed for at fejlsøge de automatiserede tests.

Vi skal installere NUnit Framework og NUnit Test Adapter på Visual Studio for at bruge det.

Trin til at installere NUnit Framework

Nu i dette Selenium med C# tutorial, lad os lære processen til at installere NUnit framework:

Trin 1) Naviger til Værktøjer -> NuGet Pakkeadministrator -> Administrer NuGet Pakker til løsning

Installer NUnit Framework

Trin 2) I det næste vindue

  1. Søg efter NUnit
  2. Vælg søgeresultatet
  3. Vælg Projekt
  4. Klik på Installer

Installer NUnit Framework

Trin 3) Nedenstående popup vises. Klik på knappen 'Ok'.

Installer NUnit Framework

Trin 4) Nedenstående meddelelse vises, når installationen er fuldført.

Installer NUnit Framework

Trin til download af NUnit Test Adapter

Nu i denne NUnit-tutorial vil vi dække trinene for at downloade NUnit Test Adapter:

Bemærk venligst, at nedenstående trin kun virker for 32-bit maskiner. For 64-bit maskiner skal du downloade 'NUnit3 Test Adapter' af following samme proces som nævnt nedenfor.

Trin 1) Naviger til Værktøjer ->NuGet Pakkeadministrator -> Administrer NuGet Pakker til løsning. På den skærm

  1. Søg i NUnitTestAdapter
  2. Klik på Søgeresultat
  3. Vælg Projekt
  4. Klik på Installer

Download NUnit Test Adapter

Trin 2) Klik på OK på pop op-vinduet til bekræftelse. Når installationen er færdig, vil du se folloenwing besked-

Download NUnit Test Adapter

Selenium og NUnit-ramme

Integration af selenium med NUnit framework giver en tester mulighed for at skelne mellem forskellige testklasser. NUnit giver også testere mulighed for at bruge annoteringer såsom SetUp, Test og TearDown til at udføre handlinger før og efter at have kørt testen.

NUnit framework kan integreres med Selenium ved at oprette en NUnit testklasse og køre testklassen ved hjælp af NUnit framework.

Nedenstående trin i dette Selenium C# framework tutorial er nødvendig for at oprette og køre en test klasse ved hjælp af NUnit framework.

Trin til at oprette en NUnit Test-klasse i Selenium:

Trin 1) Højreklik på projekt > Tilføj > Klasse i Solution Explorer

Opret en NUnit-testklasse i Selenium

Trin 2) Et vindue til oprettelse af klasse vises.

  1. Giv klassen et navn
  2. Klik på knappen Tilføj

Opret en NUnit-testklasse i Selenium

Trin 3) Nedenstående skærmbillede vises.

Opret en NUnit-testklasse i Selenium

Trin 4) Tilføj folloenwing kode til den oprettede klasse. Bemærk venligst, at du skal angive placeringen af ​​'chromdriver.exe'-filen under initialisering af 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();
        }

    }
}

Trin 4) Klik på 'Byg' -> 'Byg løsning'

Opret en NUnit-testklasse i Selenium

BEMÆRK VENLIGST: Du får muligvis en fejl som "Indeholder ikke en statisk 'hoved'-metode, der er egnet til et indgangspunkt", når du bygger

Opret en NUnit-testklasse i Selenium

For at løse dette Gå til Projekt > Egenskaber og skift outputtype til "Klassebibliotek." Standard er "Konsolapplikation."

Opret en NUnit-testklasse i Selenium

Trin 5) Når opbygningen er vellykket, skal vi åbne vinduet Test Explorer. Klik på Test -> Windows -> Test Explorer

Opret en NUnit-testklasse i Selenium

Trin 6) Vinduet Test Explorer åbnes med listen over tilgængelige tests. Højreklik på Test Explorer og vælg Kør valgte tests

Opret en NUnit-testklasse i Selenium

Trin 7) Selenium skal åbne browseren med specificeret URL og lukke browseren. Testtilfældestatus vil blive ændret til 'Bestået' i Test Explorer-vinduet.

Opret en NUnit-testklasse i Selenium

Selenium WebDriver-kommandoer i C#

C# bruger grænsefladen 'IWebDriver' til browserinteraktioner. Folloenwing er den kategori af kommandoer, der er tilgængelige med Selenium i C#.

  1. Browser kommandoer
  2. Webelement-kommandoer
  3. Dropdown-kommandoer

Nu i Selenium C Sharp tutorial, lad os studere Selenium WebDriver-kommandoer én efter én

Browserkommandoer:

Following er en liste over browserkommandoer tilgængelige i C# med Selenium.

Kommandoenavn Beskrivelse Syntaks
URL-kommando Denne kommando bruges til at åbne en specificeret URL i browseren.
driver.Url = "https://www.guru99.com"
Titel kommando Denne kommando bruges til at hente sidetitlen på den webside, der i øjeblikket er åben
String title = driver.Title
Sidekilde-kommando Denne kommando bruges til at hente kildekoden til den webside, der i øjeblikket er åben.
String pageSource = driver.PageSource
Luk kommando Denne kommando bruges til at lukke den nyligt åbnede browserinstans.
driver.Close();
Afslut kommando Denne kommando bruges til at lukke alle åbne browserforekomster
driver.Quit();
Tilbage kommando Denne kommando bruges til at navigere til den forrige side i browserhistorikken.
driver.Navigate().Back();
Fremadgående kommando Denne kommando bruges til at navigere til den næste side i browserhistorikken.
driver.Navigate().Forward()
Opdater kommando Denne kommando bruges til at udføre browseropdatering.
driver.Navigate().Refresh()

Webelement kommandoer

Et webelement repræsenterer alle elementerne på en webside. De er repræsenteret af HTML-tags. Hver af knapperne, tekstboxes, links, billeder, tabeller og rammer falder ind under Webelements. Operationer på webelementer kan udløses ved hjælp af IWebelement-grænsefladen. For at interagere med et webelement skal vi finde elementet på websiden og derefter udføre operationer på det. Værktøjer som Firebug og Firepath kan bruges til at identificere Xpath af Webelement.

Folloenwing er listen over Webelement-kommandoer, der er tilgængelige i C#.

Kommandoenavn Beskrivelse Syntaks
Klik på kommando Denne kommando bruges til at klikke på et webelement. For at elementet kan klikkes, skal elementet være synligt på websiden. Denne kommando bruges til kontrolbox og alternativknap operationer også.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();
Ryd kommando Denne kommando bruges specifikt til at rydde det eksisterende indhold af tekstboxes.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
SendKeys kommando Denne kommando bruges til at indtaste en værdi i tekst boxes. Værdien, der skal indtastes, skal videregives som parameter til
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.SendKeys("guru99");
Displayed kommando Denne kommando bruges til at identificere, om et specifikt element er displayed på websiden. Denne kommando returnerer en boolsk værdi; sand eller falsk afhængigt af webelementets synlighed.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Displayed;
Aktiveret kommando Denne kommando bruges til at identificere, om et bestemt webelement er aktiveret på websiden. Denne kommando returnerer en boolsk værdi; sandt eller falsk som resultat.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Enabled;
Valgt kommando Denne kommando bruges til at identificere, om et bestemt webelement er valgt. Denne kommando bruges til kontrolboxes, alternativknapper, og vælg operationer.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Selected;
Send kommando: Denne kommando ligner klikkommando. Forskellen ligger i om HTML-formularen har en knap med typen Send. Mens klikkommandoen klikker på en hvilken som helst knap, indsend kommando klik på de eneste knapper med typen submit.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.submit();
Tekstkommando Denne kommando returnerer den indre tekst af et webelement. Denne kommando returnerer en strengværdi som et resultat.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String text=element.Text;
TagName kommando Denne kommando returnerer HTML-tagget for et webelement. Det returnerer en strengværdi som resultatet.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  String tagName = element.TagName;
GetCSSValue kommando: Denne metode bruges til at returnere farven på et webelement i form af en rgba-streng (rød, grøn, blå og alfa).
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String color = element.getCSSValue;

Produktion– Hvis farven på elementet er rød, vil output være rgba(255,0,0,1)

Dropdown-kommandoer:

Dropdown operationer i C# kan opnås ved hjælp af SelectElement-klassen.

Folloenwing er de forskellige dropdown operatilgængelige i C#.

Kommandoenavn Beskrivelse Syntaks
SelectByText-kommando Denne kommando vælger en mulighed for en rullemenu baseret på teksten i indstillingen.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByText("Guru99");
SelectByIndex-kommando Denne kommando bruges til at vælge en indstilling baseret på dens indeks. Indeks for dropdown starter ved 0.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByIndex("4");
SelectByValue Command Denne kommando bruges til at vælge en indstilling baseret på dens indstillingsværdi.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByValue("Guru99");
Indstillinger Kommando Denne kommando bruges til at hente listen over muligheder displayed i en dropdown.
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);
}

Ovenstående kode udskriver alle mulighederne på konsollen i en rullemenu.

IsMultiple kommando Denne kommando bruges til at identificere, om en dropdown er en multi select dropdown; En rullemenu med flere valg gør det muligt for brugeren at vælge mere end én mulighed i en rullemenu ad gangen. Denne kommando returnerer en boolsk værdi.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
Boolean status = select.IsMultiple();
Kommandoen DeSelectAll Denne kommando bruges i rullemenuer med flere valg. Det rydder de indstillinger, der allerede er valgt.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectAll();
DeSelectByIndex kommando Denne kommando fravælger en allerede valgt værdi ved hjælp af dens indeks.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByIndex("4");
DeSelectByValue kommando Denne kommando fravælger en allerede valgt værdi ved hjælp af dens værdi.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByValue("Guru99");
DeSelectByText kommando Denne kommando fravælger en allerede valgt værdi ved hjælp af dens tekst.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByText("Guru99");

Kodeprøver

Eksempel 1: Klik på et link ved hjælp af XPATH Locator:

Testscenarie:

  1. Naviger til Demo Guru99 webside – https://demo.guru99.com/test/guru99home/
  2. Maksimer vinduet
  3. Klik på menuen 'Test'
  4. Luk browseren
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: Indtastning af data i tekstBox og klik på en knap ved hjælp af XPATH locator:

Testscenarie:

  1. Naviger til Guru 99 demo side – https://demo.guru99.com/test/guru99home/
  2. Indtast data i email tekst box
  3. Klik på tilmeld-knappen
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: Indtastning af data i tekstBox og klik på en knap ved hjælp af CSS-locator:

Testscenarie:

  1. Naviger til Guru 99 demo side – https://demo.guru99.com/test/guru99home/
  2. Indtast data i email tekst box
  3. Klik på tilmeld-knappen
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: Vælg en værdi i rullemenuen:

Testscenarie:

  1. Naviger til Guru 99 demo side – https://demo.guru99.com/test/guru99home/
  2. Klik på SAP-linket
  3. Indtast data på navn og fmail tekst boxes
  4. Vælg en værdi fra rullemenuen Kursus
  5. Luk browseren
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");
                        
        }
    }
}

Resumé

  • For at kunne bruge Selenium WebDriver med C#, du skal installere Visual Studio.
  • NUnit er en enhedstestramme, der understøttes af Visual Studio , Selenium webdriver
  • Vi skal installere NUnit Framework og NUnit Test Adapter på Visual Studio for at bruge det.
  • NUnit framework kan integreres med Selenium ved at oprette en NUnit testklasse og køre testklassen ved hjælp af NUnit framework.
  • NUnit giver også testere mulighed for at bruge annoteringer såsom SetUp, Test og TearDown til at udføre handlinger før og efter at have kørt testen.
  • Selenium WebDriver-kommandoer kan kategoriseres i browserkommandoer, webelementkommandoer og dropdown-kommandoer.