Selenium C# Tutoriál s příkladem NUnit
Selenium Karta Přehled
Selenium je web s otevřeným zdrojovým kódem Testování automatizace nástroj, který podporuje více prohlížečů a více operačních systémů. Umožňuje testerům používat více programovacích jazyků jako např Java, C#, Python, .Net, Ruby, PHP a Perl pro kódování automatizovaných testů.
Přehled C#
C# je objektově orientovaný programovací jazyk odvozený od C++ si Java. C# umožňuje vývojářům vytvářet aplikace pomocí Visual Studia na platformě .Net. Níže jsou uvedeny klíčové vlastnosti C#.
- Jedná se o objektově orientovaný programovací jazyk
- Podporuje vývoj konzolových, okenních a webových aplikací
- Poskytuje funkce jako zapouzdření, dědičnost a polymorfismus.
Základní syntaxe C#
Program v C# musí obsahovat následující sekce
- Deklarace jmenného prostoru
- vyučování
- Atributy a metody třídy
- Hlavní metoda
- Programová prohlášení
Příklad-
Níže je ukázka Selenium Příklad programu C# pro tisk textu 'Guru99' na systémové konzoli.
using System; namespace FirstProgram { class DemoPrint { static void main(){ Console.WriteLine("Guru99"); } } }
Vysvětlení:
- Jmenný prostor ve výše uvedeném Selenium Příklad C# je kolekce více tříd. Každý jmenný prostor musí být deklarován pomocí klíčového slova 'using'.
- První příkaz kódu zahrnuje jmenný prostor 'System' do našeho programu. Systém názvů definuje základní třídy a události používané v C#. Jmenný prostor, který se má použít, závisí na požadavcích programu.
- Druhý příkaz deklaruje jmenný prostor „FirstProgram“ pro třídu „DemoPrint“. Soubor AC# může obsahovat více tříd ve stejném jmenném prostoru.
- Třetí příkaz obsahuje deklaraci třídy. Třída může obsahovat více atributů a více metod.
- Čtvrtý příkaz obsahuje deklaraci hlavní metody. Hlavní metoda je vstupním bodem provádění pro každou třídu.
- Poslední příkaz je syntaxe jazyka C# používaná pro tisk příkazu do konzoly. WriteLine je metoda třídy 'Console.
Selenium s nastavením C#
Jak nastavit Visual Studio s Selenium WebDriver:
Nyní v tomto Selenium C# tutoriál, pojďme se naučit krok za krokem proces nastavení sady Visual Studio Selenium WebDriver:
Visual Studio je integrované vývojové prostředí (IDE), které používají vývojáři k vytváření aplikací na více platformách jako např Windows, Android, iOS a cloudové aplikace.
Krok 1) Přejděte na adresu URL
https://visualstudio.microsoft.com/downloads/ a klikněte na 'Stažení zdarma' tlačítko zobrazené na kartě Komunita sady Visual Studio
Krok 2) Otevřete stažený exe. Pokud budete požádáni o administrátorská práva, klikněte na 'Ano'.
Krok 3) Zobrazí se níže uvedené vyskakovací okno. Klikněte na tlačítko 'Pokračovat'.
Soubory budou staženy, jak je uvedeno ve vyskakovacím okně níže.
Krok 4) Na další obrazovce
Zaškrtněte políčka pro
- Univerzální Windows Vývoj platformy
- Vývoj desktopů .Net
Klikněte na 'Instalovat'.
Počkejte na dokončení instalace každé součásti. Soubory mají velikost 16 GB a nějakou dobu to potrvá.
Krok 5) Zobrazí se níže uvedené vyskakovací okno. Klikněte na tlačítko 'Restartovat'.
Krok 6) Po restartování počítače vyhledejte v nabídce Start „Visual Studio“ a klikněte na výsledek hledání. Zobrazí se následující vyskakovací okno. Pokud nemáte existující účet, klikněte na odkaz „Nyní ne, možná později“.
Krok 7) Na další obrazovce
- Vyberte si barevný motiv podle svých představ
- Klikněte na tlačítko „Spustit Visual Studio“
Krok 8) Zobrazí se obrazovka „Get Started“ sady Visual Studio.
Vytvořte nový projekt ve Visual Studiu:
Krok 1) V nabídce Soubor klikněte na Nový > Projekt
Krok 2) Na další obrazovce
- Vyberte možnost 'Visual C#'
- Klikněte na Console App (.Net Framework)
- Zadejte jméno jako „Guru99“
- klepněte na tlačítko OK
Krok 3) Po úspěšném vytvoření projektu se zobrazí níže uvedená obrazovka.
Nastavte Visual Studio pomocí Selenium WebDriver:
Krok 1) Přejděte na Nástroje -> NuGet Správce balíčků -> Spravovat NuGet Balíčky pro řešení
Krok 2) Na další obrazovce
- Hledat Selenium na výsledné obrazovce
- Vyberte první výsledek hledání
- Zaškrtněte políčko projektu
- Klikněte na 'Instalovat'
Krok 3) Klikněte na tlačítko 'OK' ve vyskakovací obrazovce
Krok 4) Po úspěšné instalaci balíčku se zobrazí níže uvedená zpráva.
NUnit Framework: Přehled
NUnit je Testování jednotek framework podporovaný Visual Studio a Selenium WebDriver. NUnit je nejrozšířenější framework pro testování jednotek pro aplikace .Net. NUnit prezentuje výsledky testů v čitelném formátu a umožňuje testerovi ladit automatizované testy.
Abychom je mohli používat, musíme do Visual Studia nainstalovat NUnit Framework a NUnit Test Adapter.
Kroky k instalaci NUnit Framework
Nyní v tomto Selenium s tutoriálem C# se naučíme proces instalace rámce NUnit:
Krok 1) Přejděte na Nástroje -> NuGet Správce balíčků -> Spravovat NuGet Balíčky pro řešení
Krok 2) V dalším okně
- Vyhledejte NUnit
- Vyberte výsledek hledání
- Vyberte Projekt
- Klikněte na tlačítko Instalovat
Krok 3) Zobrazí se níže uvedené vyskakovací okno. Klikněte na tlačítko 'OK'.
Krok 4) Po dokončení instalace se zobrazí níže uvedená zpráva.
Kroky ke stažení NUnit Test Adapter
Nyní v tomto tutoriálu NUnit pokryjeme kroky ke stažení testovacího adaptéru NUnit:
Vezměte prosím na vědomí, že níže uvedené kroky fungují pouze pro 32bitové počítače. Pro 64bitové počítače si musíte stáhnout 'NUnit3 Test Adapter' podle stejného postupu, jak je uvedeno níže.
Krok 1) Přejděte na Nástroje -> NuGet Správce balíčků -> Spravovat NuGet Balíčky pro řešení. Na té obrazovce,
- Vyhledejte NUnitTestAdapter
- Klepněte na položku Výsledek hledání
- Vyberte Projekt
- Klikněte na tlačítko Instalovat
Krok 2) V potvrzovacím vyskakovacím okně klikněte na OK. Po dokončení instalace se zobrazí následující zpráva -
Selenium a NUnit framework
Integrace selenu s rámcem NUnit umožňuje testerovi rozlišovat mezi různými třídami testů. NUnit také umožňuje testerům používat anotace jako SetUp, Test a TearDown k provádění akcí před a po spuštění testu.
Rámec NUnit lze integrovat Selenium vytvořením testovací třídy NUnit a spuštěním testovací třídy pomocí rámce NUnit.
Níže uvedené kroky Selenium K vytvoření a spuštění testovací třídy pomocí frameworku NUnit je zapotřebí výukový program rámce C#.
Kroky k vytvoření třídy NUnit Test v Selenium:
Krok 1) V Průzkumníku řešení klikněte pravým tlačítkem na projekt > Přidat > Třída
Krok 2) Zobrazí se okno pro vytvoření třídy.
- Zadejte název třídy
- Klikněte na tlačítko Přidat
Krok 3) Zobrazí se níže uvedená obrazovka.
Krok 4) Přidejte následující kód do vytvořené třídy. Vezměte prosím na vědomí, že během inicializace ovladače Chrome musíte zadat umístění souboru 'chromdriver.exe'.
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(); } } }
Krok 4) Klikněte na 'Sestavit' -> 'Sestavit řešení'
POZNÁMKA: Při sestavování se může zobrazit chyba jako „Neobsahuje statickou ‚hlavní‘ metodu vhodnou pro vstupní bod
Chcete-li tento problém vyřešit, přejděte do části Projekt > Vlastnosti a změňte typ výstupu na „Knihovna tříd“. Výchozí hodnota je „Aplikace konzoly“.
Krok 5) Jakmile je sestavení úspěšné, musíme otevřít okno Test Explorer. Klikněte na Test -> Windows -> Test Explorer
Krok 6) Otevře se okno Test Explorer se seznamem dostupných testů. Klikněte pravým tlačítkem na Průzkumník testů a vyberte Spustit vybrané testy
Krok 7) Selenium musí otevřít prohlížeč se zadanou URL a zavřít prohlížeč. Stav testovacího případu se v okně Průzkumník testů změní na „Úspěšně“.
Selenium Příkazy WebDriver v C#
C# používá rozhraní 'IWebDriver' pro interakce s prohlížečem. Níže jsou uvedeny kategorie dostupných příkazů Selenium v C#.
- Příkazy prohlížeče
- Příkazy Web Element
- Rozbalovací příkazy
Nyní v Selenium C Sharp tutoriál, pojďme studovat Selenium WebDriver příkazy jeden po druhém
Příkazy prohlížeče:
Následuje seznam příkazů prohlížeče dostupných v C# s Selenium.
Název příkazu | Description | Syntax |
---|---|---|
Příkaz URL | Tento příkaz se používá k otevření zadané adresy URL v prohlížeči. |
driver.Url = "https://www.guru99.com" |
Název příkazu | Tento příkaz se používá k načtení názvu stránky aktuálně otevřené webové stránky |
String title = driver.Title |
Příkaz PageSource | Tento příkaz se používá k načtení zdrojového kódu webové stránky, která je aktuálně otevřená. |
String pageSource = driver.PageSource |
Zavřít příkaz | Tento příkaz se používá k uzavření naposledy otevřené instance prohlížeče. |
driver.Close(); |
Ukončete příkaz | Tento příkaz se používá k uzavření všech otevřených instancí prohlížeče |
driver.Quit(); |
Příkaz Zpět | Tento příkaz slouží k přechodu na předchozí stránku historie prohlížeče. |
driver.Navigate().Back(); |
Příkaz vpřed | Tento příkaz se používá k přechodu na další stránku historie prohlížeče. |
driver.Navigate().Forward() |
Obnovit příkaz | Tento příkaz se používá k obnovení prohlížeče. |
driver.Navigate().Refresh() |
Příkazy Webelement
Webelement představuje všechny prvky na webové stránce. Jsou reprezentovány HTML tagy. Každé z tlačítek, textových polí, odkazů, obrázků, tabulek a rámců spadá do Webelements. Operace na webových prvcích lze spouštět pomocí rozhraní IWebelement. Abychom mohli interagovat s webovým prvkem, musíme prvek najít na webové stránce a poté s ním provádět operace. Nástroje jako Firebug a Firepath lze použít k identifikaci Xpath společnosti Webelement.
Následuje seznam příkazů Webelement dostupných v C#.
Název příkazu | Description | Syntax |
---|---|---|
Klepněte na příkaz | Tento příkaz se používá ke kliknutí na Webelement. Aby bylo možné na prvek kliknout, musí být prvek na webové stránce viditelný. Tento příkaz se používá také pro operace zaškrtávacích políček a přepínacích tlačítek. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Click(); |
Vymazat příkaz | Tento příkaz se speciálně používá pro vymazání stávajícího obsahu textových polí. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Clear(); |
Příkaz SendKeys | Tento příkaz se používá k zadání hodnoty do textových polí. Hodnota, která se má zadat, musí být předána jako parametr |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.SendKeys("guru99"); |
Zobrazený příkaz | Tento příkaz se používá k identifikaci, zda je na webové stránce zobrazen konkrétní prvek. Tento příkaz vrací booleovskou hodnotu; true nebo false v závislosti na viditelnosti webového prvku. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Displayed; |
Povolen příkaz | Tento příkaz se používá k identifikaci, zda je na webové stránce povolen určitý webový prvek. Tento příkaz vrací booleovskou hodnotu; v důsledku toho pravda nebo nepravda. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Enabled; |
Vybraný příkaz | Tento příkaz se používá k identifikaci, zda je vybraný konkrétní prvek webu. Tento příkaz se používá pro zaškrtávací políčka, přepínače a operace výběru. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Selected; |
Odeslat příkaz: | Tento příkaz je podobný příkazu click, Rozdíl spočívá v tom, zda HTML formulář obsahuje tlačítko s typem Odeslat. Zatímco příkaz click klikne na libovolné tlačítko, příkaz Submit klikne pouze na tlačítka s typem submit. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.submit(); |
Textový příkaz | Tento příkaz vrátí vnitřní text webového prvku. Tento příkaz jako výsledek vrátí hodnotu řetězce. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String text=element.Text; |
Příkaz TagName | Tento příkaz vrátí značku HTML webového prvku. Jako výsledek vrátí hodnotu řetězce. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String tagName = element.TagName; |
Příkaz GetCSSValue: | Tato metoda se používá k vrácení barvy webového prvku ve formě řetězce rgba (červená, zelená, modrá a alfa). |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String color = element.getCSSValue; Výstup– Pokud je barva prvku červená, výstup bude rgba(255,0,0,1) |
Rozbalovací příkazy:
Rozbalovací operace v C# lze dosáhnout pomocí třídy SelectElement.
Následují různé rozevírací operace dostupné v C#.
Název příkazu | Description | Syntax |
---|---|---|
Příkaz SelectByText | Tento příkaz vybere možnost rozevíracího seznamu na základě textu možnosti. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByText("Guru99"); |
Příkaz SelectByIndex | Tento příkaz se používá k výběru volby na základě jejího indexu. Index rozevíracího seznamu začíná na 0. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByIndex("4"); |
Příkaz SelectByValue | Tento příkaz se používá k výběru možnosti na základě její hodnoty. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByValue("Guru99"); |
Příkaz Možnosti | Tento příkaz se používá k načtení seznamu možností zobrazených v rozevíracím seznamu. |
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); } Výše uvedený kód vytiskne všechny možnosti na konzoli v rozevíracím seznamu. |
Příkaz IsMultiple | Tento příkaz se používá k identifikaci, zda se jedná o rozevírací seznam s více možnostmi; Rozbalovací nabídka s více možnostmi umožňuje uživateli vybrat více než jednu možnost v rozevírací nabídce najednou. Tento příkaz vrací booleovskou hodnotu. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); Boolean status = select.IsMultiple(); |
Příkaz DeSelectAll | Tento příkaz se používá v rozevíracích seznamech s vícenásobným výběrem. Vymaže možnosti, které již byly vybrány. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectAll(); |
Příkaz DeSelectByIndex | Tento příkaz zruší výběr již vybrané hodnoty pomocí jejího indexu. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByIndex("4"); |
Příkaz DeSelectByValue | Tento příkaz zruší výběr již vybrané hodnoty pomocí její hodnoty. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByValue("Guru99"); |
Příkaz DeSelectByText | Tento příkaz zruší výběr již vybrané hodnoty pomocí jejího textu. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByText("Guru99"); |
Ukázky kódu
Příklad 1: Klikněte na odkaz pomocí XPATH Locator:
Scénář testu:
- Přejděte na webovou stránku Demo Guru99 – https://demo.guru99.com/test/guru99home/
- Maximalizujte okno
- Klikněte na nabídku 'Testování'
- Zavřete prohlížeč
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(); } } }
Příklad 2: Zadávání dat do textuBox a klikněte na tlačítko pomocí lokátoru XPATH:
Scénář testu:
- Přejděte na ukázkovou stránku Guru 99 – https://demo.guru99.com/test/guru99home/
- Zadejte data do textového pole e-mailu
- Klikněte na tlačítko přihlásit se
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(); } } }
Příklad 3: Zadávání dat do textuBox a klikněte na tlačítko pomocí CSS lokátoru:
Scénář testu:
- Přejděte na ukázkovou stránku Guru 99 – https://demo.guru99.com/test/guru99home/
- Zadejte data do textového pole e-mailu
- Klikněte na tlačítko přihlásit se
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(); } } }
Příklad 4: Vyberte hodnotu v rozevíracím seznamu:
Scénář testu:
- Přejděte na ukázkovou stránku Guru 99 – https://demo.guru99.com/test/guru99home/
- Klikněte na SAP https://trials.autocruitment.com
- Zadejte data do textových polí jména a e-mailu
- Vyberte hodnotu z rozbalovací nabídky Kurz
- Zavřete prohlížeč
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"); } } }
Shrnutí
- Aby bylo možné používat Selenium WebDriver s C#, musíte nainstalovat Visual Studio.
- NUnit je rámec pro testování jednotek podporovaný sadou Visual Studio a Selenium webový ovladač
- Abychom je mohli používat, musíme do Visual Studia nainstalovat NUnit Framework a NUnit Test Adapter.
- Rámec NUnit lze integrovat Selenium vytvořením testovací třídy NUnit a spuštěním testovací třídy pomocí rámce NUnit.
- NUnit také umožňuje testerům používat anotace jako SetUp, Test a TearDown k provádění akcí před a po spuštění testu.
- Selenium Příkazy WebDriver lze rozdělit na příkazy prohlížeče, příkazy webového prvku a příkazy rozevíracího seznamu.