Selenium C# õpetus NUniti näitega
Selenium Ülevaade
Selenium on avatud lähtekoodiga veeb Automatiseerimise testimine tööriist, mis toetab mitut brauserit ja mitut operatsioonisüsteemi. See võimaldab testijatel kasutada mitut programmeerimiskeelt, näiteks Java, C#, Python, .Net, Ruby, PHP ja Perl automatiseeritud testide kodeerimiseks.
C# ülevaade
C# on objektorienteeritud programmeerimiskeel, mis on tuletatud C++ ja Java. C# võimaldab arendajatel luua rakendusi Visual Studio abil .Neti platvormil. Järgmised on selle peamised omadused C#.
- See on objektorienteeritud programmeerimiskeel
- See toetab konsooli, akende ja veebipõhiste rakenduste arendamist
- See pakub selliseid funktsioone nagu kapseldamine, pärimine ja polümorfism.
C# põhisüntaks
Programm C#-s peab sisaldama järgmisi jaotisi
- Nimeruumi deklaratsioon
- klassid
- Klassi atribuudid ja meetodid
- Peamine meetod
- Programmi avaldused
Näide-
Allpool on näidis Selenium C# näidisprogramm teksti 'Guru99' printimiseks süsteemikonsoolile.
using System; namespace FirstProgram { class DemoPrint { static void main(){ Console.WriteLine("Guru99"); } } }
Selgitus:
- Nimeruum ülaltoodud Selenium C# näide on mitme klassi kogum. Iga nimeruum tuleb deklareerida märksõnaga "kasutamine".
- Koodi esimene lause sisaldab meie programmis nimeruumi "Süsteem". Süsteemi nimeruum määratleb C#-s kasutatavad põhiklassid ja sündmused. Kasutatav nimeruum sõltub programmi nõudest.
- Teine väide on klassi "DemoPrint" jaoks nimeruumi "FirstProgram" deklareerimine. AC#-fail võib sisaldada samas nimeruumis mitut klassi.
- Kolmas lause sisaldab klassi deklaratsiooni. Klass võib sisaldada mitut atribuuti ja mitut meetodit.
- Neljas lause sisaldab peamise meetodi deklaratsiooni. Peamine meetod on iga klassi täitmise sisestuspunkt.
- Viimane lause on C# süntaks, mida kasutatakse avalduse konsooli printimiseks. WriteLine on klassi "Console" meetod.
Selenium koos C# Setupiga
Visual Studio seadistamine Selenium Veebidraiver:
Nüüd selles Selenium C# õpetus, uurime samm-sammult Visual Studio seadistamise protsessi Selenium Veebidraiver:
Visual Studio on integreeritud arenduskeskkond (IDE), mida arendajad kasutavad rakenduste loomiseks mitmel platvormil, näiteks Windows, Android, iOS-i ja pilvepõhised rakendused.
Step 1) Liikuge URL-ile
https://visualstudio.microsoft.com/downloads/ ja klõpsake nuppu "Tasuta allalaadimine" Visual Studio kogukonna vahekaardil kuvatav nupp
Step 2) Avage allalaaditud exe. Kui teilt küsitakse administraatoriõigusi, klõpsake nuppu Jah.
Step 3) Ilmub allolev hüpikaken. Klõpsake nuppu "Jätka".
Failid laaditakse alla, nagu on näidatud allolevas hüpikaknas.
Step 4) Järgmisel ekraanil
Märkige ruudud
- Universaalne Windows Platvormi arendamine
- .Neti töölauaarendus
Klõpsake "Installi".
Oodake, kuni iga komponendi installimine on lõpule viidud. Failid on 16 GB suurused ja võtavad aega.
Step 5) Kuvatakse allolev hüpikaken. Klõpsake nuppu "Taaskäivita".
Step 6) Kui masin on taaskäivitatud, otsige käivitusmenüüst "Visual Studio" ja klõpsake otsingutulemust. Ilmub järgmine hüpikaken. Kui teil pole kontot, klõpsake lingil "Mitte praegu, võib-olla hiljem".
Step 7) Järgmisel ekraanil
- Valige oma maitse järgi värviteema
- Klõpsake nuppu "Käivita Visual Studio"
Step 8) Ilmub Visual Studio 'Alusta' ekraan.
Looge Visual Studios uus projekt:
Step 1) Menüüs Fail klõpsake nuppu Uus > Projekt
Step 2) Järgmisel ekraanil
- Valige suvand "Visual C#"
- Klõpsake konsoolirakendusel (.Net Framework)
- Sisestage nimi kui "Guru99"
- OK
Step 3) Kui projekt on edukalt loodud, kuvatakse allolev ekraan.
Seadistage Visual Studio rakendusega Selenium Veebidraiver:
Step 1) Liikuge jaotisse Tööriistad -> NuGet Paketihaldur -> Halda NuGet Lahenduse paketid
Step 2) Järgmisel ekraanil
- Otsi Selenium saadud ekraanil
- Valige esimene otsingutulemus
- Märkige projekti märkeruut
- Klõpsake nuppu "Install"
Step 3) Klõpsake hüpikaknas nuppu 'OK'
Step 4) Allolev teade kuvatakse pärast paketi edukat installimist.
NUnit Framework: ülevaade
NUnit on Üksuse testimine raamistik, mida toetab Visual Studio ja Selenium Veebidraiver. NUnit on .Neti rakenduste jaoks kõige laialdasemalt kasutatav üksuse testimise raamistik. NUnit esitab testitulemused loetavas vormingus ja võimaldab testijal automaatteste siluda.
Peame installima NUnit Frameworki ja NUnit Test Adapteri Visual Studiosse, et seda kasutada.
NUnit Frameworki installimise sammud
Nüüd selles Selenium C# õpetusega tutvume NUniti raamistiku installimise protsessiga:
Step 1) Liikuge jaotisse Tööriistad -> NuGet Paketihaldur -> Halda NuGet Lahenduse paketid
Step 2) Järgmises aknas
- Otsige NUnit
- Valige otsingutulemus
- Valige Projekt
- Klõpsake nuppu Installi
Step 3) Ilmub allolev hüpikaken. Klõpsake nuppu 'OK'.
Step 4) Allolev teade kuvatakse pärast installimise lõpetamist.
NUnit Test Adapteri allalaadimise juhised
Nüüd selles NUniti õpetuses käsitleme samme NUnit Test Adapteri allalaadimiseks:
Pange tähele, et alltoodud sammud töötavad ainult 32-bitiste masinate puhul. 64-bitiste masinate jaoks peate alla laadima NUnit3 testadapteri, järgides sama protsessi, nagu allpool mainitud.
Step 1) Liikuge jaotisse Tööriistad -> NuGet Paketihaldur -> Halda NuGet Lahenduse paketid. Sellel ekraanil
- Otsige NUnitTestAdapter
- Klõpsake nuppu Otsingutulemus
- Valige Projekt
- Klõpsake nuppu Installi
Step 2) Klõpsake kinnituse hüpikaknas OK. Kui installimine on lõpetatud, näete järgmist teadet -
Selenium ja NUnit raamistik
Seleeni integreerimine NUniti raamistikuga võimaldab testijal eristada erinevaid testiklasse. NUnit võimaldab testijatel kasutada ka selliseid märkusi nagu SetUp, Test ja TearDown, et teha toiminguid enne ja pärast testi käivitamist.
NUniti raamistikku saab integreerida Selenium luues NUnit testklassi ja käivitades testklassi NUnit raamistiku abil.
Allpool on selle sammud Selenium C# raamistiku õpetust on vaja NUnit raamistikku kasutava testklassi loomiseks ja käitamiseks.
NUnit Testi klassi loomise sammud Selenium:
Step 1) Paremklõpsake Solution Exploreris projekti > Lisa > Klass
Step 2) Ilmub klassi loomise aken.
- Andke klassile nimi
- Klõpsake nuppu Lisa
Step 3) Ilmub allolev ekraan.
Step 4) Lisa loodud klassile järgmine kood. Pange tähele, et peate Chrome'i draiveri lähtestamise ajal määrama faili „chromdriver.exe” asukoha.
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(); } } }
Step 4) Klõpsake "Ehita" -> "Ehita lahendus"
MÄRKUS: Ehitamisel võidakse kuvada tõrketeade, näiteks "Ei sisalda sisenemispunkti jaoks sobivat staatilist "põhimeetodit".
Selle lahendamiseks avage projekt > Atribuudid ja muutke väljundi tüübiks „Klassi raamatukogu“. Vaikimisi on "Konsoolirakendus".
Step 5) Kui ehitamine on edukas, peame avama Test Exploreri akna. Klõpsake nuppu Test -> Windows -> Test Explorer
Step 6) Avaneb Test Exploreri aken saadaolevate testide loendiga. Paremklõpsake Test Explorerit ja valige Käivita valitud testid
Step 7) Selenium peab avama määratud URL-iga brauseri ja sulgema brauseri. Testjuhtumi olekuks muudetakse Test Exploreri aknas „Läbinud”.
Selenium WebDriveri käsud C#-s
C# kasutab brauseri interaktsiooniks liidest 'IWebDriver'. Järgmised on käsud, mis on saadaval Selenium C# keeles.
- Brauseri käsud
- Veebielemendi käsud
- Rippmenüü käsud
Nüüd Selenium C Terav õpetus, uurime Selenium WebDriver käsud ükshaaval
Brauseri käsud:
Järgmine on brauseri käskude loend, mis on saadaval C#-s Selenium.
Käsu nimi | Kirjeldus | Süntaks |
---|---|---|
URL-i käsk | Seda käsku kasutatakse määratud URL-i avamiseks brauseris. |
driver.Url = "https://www.guru99.com" |
Pealkiri Käsk | Seda käsku kasutatakse praegu avatud veebilehe lehe pealkirja hankimiseks |
String title = driver.Title |
PageSource käsk | Seda käsku kasutatakse praegu avatud veebilehe lähtekoodi hankimiseks. |
String pageSource = driver.PageSource |
Sule käsk | Seda käsku kasutatakse hiljuti avatud brauseri eksemplari sulgemiseks. |
driver.Close(); |
Välju käsust | Seda käsku kasutatakse kõigi avatud brauseri eksemplaride sulgemiseks |
driver.Quit(); |
Tagasi käsk | Seda käsku kasutatakse brauseri ajaloo eelmisele lehele liikumiseks. |
driver.Navigate().Back(); |
Edasi käsk | Seda käsku kasutatakse brauseri ajaloo järgmisele lehele liikumiseks. |
driver.Navigate().Forward() |
Värskenda käsk | Seda käsku kasutatakse brauseri värskendamiseks. |
driver.Navigate().Refresh() |
Veebielemendi käsud
Veebielement esindab kõiki veebilehe elemente. Neid esindavad HTML-märgised. Kõik nupud, tekstikastid, lingid, pildid, tabelid ja raamid kuuluvad veebielementide alla. OperaIWebelementi liidese abil saab käivitada veebielementide muudatusi. Veebielemendiga suhtlemiseks peame leidma veebilehelt elemendi ja seejärel tegema sellega toiminguid. Selle tuvastamiseks saab kasutada selliseid tööriistu nagu Firebug ja Firepath Xpath veebielemendist.
Järgmine on C#-s saadaolevate veebielementide käskude loend.
Käsu nimi | Kirjeldus | Süntaks |
---|---|---|
Klõpsake käsku | Seda käsku kasutatakse veebielemendil klõpsamiseks. Et element oleks klõpsatav, peab element olema veebilehel nähtav. Seda käsku kasutatakse ka märkeruudu ja raadionupu toimingute jaoks. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Click(); |
Tühjenda käsk | Seda käsku kasutatakse spetsiaalselt tekstikastide olemasoleva sisu kustutamiseks. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Clear(); |
SendKeys käsk | Seda käsku kasutatakse tekstikastidesse väärtuse sisestamiseks. Sisestatav väärtus tuleb parameetrina edastada |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.SendKeys("guru99"); |
Kuvatakse käsk | Seda käsku kasutatakse selleks, et tuvastada, kas veebilehel kuvatakse konkreetne element. See käsk tagastab Boole'i väärtuse; tõene või vale, olenevalt veebielemendi nähtavusest. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Displayed; |
Lubatud käsk | Seda käsku kasutatakse selleks, et tuvastada, kas konkreetne veebielement on veebilehel lubatud. See käsk tagastab Boole'i väärtuse; selle tulemusena tõene või vale. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Enabled; |
Valitud käsk | Seda käsku kasutatakse selleks, et tuvastada, kas konkreetne veebielement on valitud. Seda käsku kasutatakse märkeruutude, raadionuppude ja valikutoimingute jaoks. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Selected; |
Esita käsk: | See käsk sarnaneb klikikäsuga. Erinevus seisneb selles, kas HTML-vormil on nupp tüübiga Esita. Kui klikikäsk klõpsab mis tahes nupul, siis esitamiskäsk klõpsab ainult nuppudel, mille tüüp on Esita. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.submit(); |
Teksti käsk | See käsk tagastab veebielemendi siseteksti. See käsk tagastab selle tulemusel stringi väärtuse. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String text=element.Text; |
Käsk TagName | See käsk tagastab veebielemendi HTML-märgendi. Tulemusena tagastab see stringi väärtuse. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String tagName = element.TagName; |
GetCSSValue käsk: | Seda meetodit kasutatakse veebielemendi värvi tagastamiseks rgba stringi kujul (punane, roheline, sinine ja alfa). |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String color = element.getCSSValue; Väljund- Kui elemendi värv on punane, on väljundiks rgba(255,0,0,1) |
Rippmenüü käsud:
C# rippmenüü toiminguid saab teha SelectElement klassi abil.
Järgmised on erinevad C#-s saadaolevad rippmenüü toimingud.
Käsu nimi | Kirjeldus | Süntaks |
---|---|---|
SelectByText käsk | See käsk valib rippmenüüst valiku suvandi teksti põhjal. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByText("Guru99"); |
SelectByIndexi käsk | Seda käsku kasutatakse suvandi valimiseks selle indeksi alusel. Rippmenüü indeks algab 0-st. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByIndex("4"); |
SelectByValue käsk | Seda käsku kasutatakse suvandi valimiseks selle suvandi väärtuse alusel. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByValue("Guru99"); |
Valikud käsk | Seda käsku kasutatakse rippmenüüs kuvatavate valikute loendi hankimiseks. |
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); } Ülaltoodud kood prindib kõik valikud konsoolile rippmenüüs. |
IsMultiple käsk | Seda käsku kasutatakse tuvastamaks, kas rippmenüü on mitme valiku rippmenüü; Mitme valiku rippmenüü võimaldab kasutajal valida rippmenüüst korraga rohkem kui ühe valiku. See käsk tagastab Boole'i väärtuse. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); Boolean status = select.IsMultiple(); |
DeSelectAll käsk | Seda käsku kasutatakse mitme valiku rippmenüüdes. See tühjendab juba valitud valikud. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectAll(); |
DeSelectByIndexi käsk | See käsk tühistab juba valitud väärtuse valiku selle indeksi abil. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByIndex("4"); |
DeSelectByValue käsk | See käsk tühistab juba valitud väärtuse, kasutades selle väärtust. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByValue("Guru99"); |
DeSelectByText käsk | See käsk tühistab juba valitud väärtuse teksti kasutades. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByText("Guru99"); |
Koodi näidised
Näide 1: klõpsake XPATH Locatori abil lingil:
Testi stsenaarium:
- Navigeeri Demo Guru99 veebilehele – https://demo.guru99.com/test/guru99home/
- Maksimeerige aken
- Klõpsake menüül "Testimine".
- Sulgege brauser
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(); } } }
Näide 2: Andmete sisestamine tekstiBox ja klõpsake XPATH lokaatori abil nuppu:
Testi stsenaarium:
- Liikuge Guru 99 demo lehele – https://demo.guru99.com/test/guru99home/
- Sisestage andmed e-posti tekstikasti
- Klõpsake registreerumisnupul
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(); } } }
Näide 3: Andmete sisestamine tekstiBox ja klõpsake CSS-i lokaatori abil nuppu:
Testi stsenaarium:
- Liikuge Guru 99 demo lehele – https://demo.guru99.com/test/guru99home/
- Sisestage andmed e-posti tekstikasti
- Klõpsake registreerumisnupul
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(); } } }
Näide 4: valige rippmenüüst väärtus:
Testi stsenaarium:
- Liikuge Guru 99 demo lehele – https://demo.guru99.com/test/guru99home/
- Klõpsake SAP link
- Sisestage andmed nime ja meili tekstikasti
- Valige väärtus rippmenüüst Kursus
- Sulgege brauser
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"); } } }
kokkuvõte
- Selleks, et kasutada Selenium C#-ga WebDriver, peate installima Visual Studio.
- NUnit on üksuse testimise raamistik, mida toetab Visual Studio ja Selenium veebidraiver
- Peame installima NUnit Frameworki ja NUnit Test Adapteri Visual Studiosse, et seda kasutada.
- NUniti raamistikku saab integreerida Selenium luues NUnit testklassi ja käivitades testklassi NUnit raamistiku abil.
- NUnit võimaldab testijatel kasutada ka selliseid märkusi nagu SetUp, Test ja TearDown, et teha toiminguid enne ja pärast testi käivitamist.
- Selenium WebDriveri käsud saab liigitada brauseri käskudeks, veebielementide käskudeks ja rippmenüü käskudeks.