Selenium Tutorial su C# con esempio NUnit
Selenium Panoramica
Selenium è un file web open source Test di automazione strumento che supporta più browser e più sistemi operativi. Consente ai tester di utilizzare più linguaggi di programmazione come Java, C#, Python, .Net, Ruby, PHP e Perl per la codifica di test automatizzati.
Panoramica di C#
C# è un linguaggio di programmazione orientato agli oggetti derivato da C++ e Java. C# consente agli sviluppatori di creare applicazioni utilizzando Visual Studio sulla piattaforma .Net. Di seguito sono riportate le funzionalità principali di C#.
- È un linguaggio di programmazione orientato agli oggetti
- Supporta lo sviluppo di applicazioni console, Windows e basate sul Web
- Fornisce funzionalità come incapsulamento, ereditarietà e polimorfismo.
Sintassi di base di C#
Un programma in C# deve contenere le seguenti sezioni
- Dichiarazione dello spazio dei nomi
- Classi
- Attributi e metodi delle classi
- Metodo principale
- Dichiarazioni di programma
Esempio-
Di seguito è riportato un esempio Selenium Programma di esempio C# per stampare il testo "Guru99" sulla console di sistema.
using System; namespace FirstProgram { class DemoPrint { static void main(){ Console.WriteLine("Guru99"); } } }
Spiegazione:
- Uno spazio dei nomi in alto Selenium L'esempio C# è una raccolta di più classi. Ogni spazio dei nomi deve essere dichiarato utilizzando la parola chiave "using".
- La prima istruzione del codice include lo spazio dei nomi "System" nel nostro programma. Lo spazio dei nomi System definisce le classi e gli eventi fondamentali utilizzati in C#. Lo spazio dei nomi da utilizzare dipende dai requisiti del programma.
- La seconda istruzione dichiara uno spazio dei nomi "FirstProgram" per la classe "DemoPrint". Il file AC# può contenere più classi nello stesso spazio dei nomi.
- La terza istruzione include la dichiarazione della classe. Una classe può contenere più attributi e più metodi.
- La quarta istruzione include una dichiarazione del metodo Main. Il metodo main è il punto di ingresso dell'esecuzione per ogni classe.
- L'ultima istruzione è la sintassi C# utilizzata per stampare un'istruzione sulla console. WriteLine è un metodo della classe 'Console.
Selenium con l'installazione di C#
Come configurare Visual Studio con Selenium Driver Web:
Ora in questo Selenium Tutorial C#, impariamo il processo passo dopo passo per configurare Visual Studio con Selenium Driver Web:
Visual Studio è un ambiente di sviluppo integrato (IDE) utilizzato dagli sviluppatori per creare applicazioni su più piattaforme come Windows, Android, iOS e applicazioni basate su cloud.
Passo 1) Passare all'URL
https://visualstudio.microsoft.com/downloads/ e clicca su 'Download gratuito' pulsante visualizzato nella scheda Community di Visual Studio
Passo 2) Apri l'exe scaricato. Fare clic su "Sì" se vengono richiesti i diritti di amministratore.
Passo 3) Apparirà il popup sottostante. Fare clic sul pulsante "Continua".
I file verranno scaricati come mostrato nel popup sottostante.
Passo 4) Nella schermata successiva,
Selezionare le caselle di controllo per
- universale Windows Sviluppo della piattaforma
- Sviluppo desktop .Net
Fare clic su "Installa".
Attendere il completamento dell'installazione di ciascun componente. I file hanno una dimensione di 16 GB e richiederanno tempo.
Passo 5) Verrà visualizzato il popup riportato di seguito. Fare clic sul pulsante "Riavvia".
Passo 6) Una volta riavviata la macchina, cerca "Visual Studio" nel menu di avvio e clicca sul risultato della ricerca. Apparirà il seguente popup. Clicca sul link "Non ora, forse più tardi" se non hai un account esistente.
Passo 7) Nella schermata successiva,
- Seleziona il tema colore di tuo gradimento
- Fare clic sul pulsante "Avvia Visual Studio"
Passo 8) Verrà visualizzata la schermata "Introduzione" di Visual Studio.
Crea un nuovo progetto in Visual Studio:
Passo 1) Nel menu File, fare clic su Nuovo > Progetto
Passo 2) Nella schermata successiva,
- Seleziona l'opzione 'Visual C#'
- Fare clic sull'app Console (.Net Framework)
- Inserisci il nome come "Guru99"
- fare clic su OK
Passo 3) La schermata seguente verrà visualizzata una volta creato con successo il progetto.
Imposta Visual Studio con Selenium Driver Web:
Passo 1) Passare a Strumenti -> NuGet Gestore pacchetti -> Gestisci NuGet Pacchetti per la soluzione
Passo 2) Nella schermata successiva
- Cercare Selenium sullo schermo risultante
- Seleziona il primo risultato della ricerca
- Seleziona la casella di controllo del progetto
- Fare clic su "Installa"
Passo 3) Fare clic sul pulsante "OK" nella schermata pop-up
Passo 4) Il messaggio seguente verrà visualizzato una volta installato correttamente il pacchetto.
Framework NUnit: panoramica
NUnit è il Test unitari framework supportato da Visual Studio e Selenium WebDriver. NUnit è il framework di unit test più utilizzato per le applicazioni .Net. NUnit presenta i risultati del test in un formato leggibile e consente a un tester di eseguire il debug dei test automatizzati.
Per poterlo utilizzare, dobbiamo installare NUnit Framework e NUnit Test Adapter su Visual Studio.
Passaggi per installare NUnit Framework
Ora in questo Selenium con il tutorial C#, impariamo il processo per installare il framework NUnit:
Passo 1) Passare a Strumenti -> NuGet Gestore pacchetti -> Gestisci NuGet Pacchetti per la soluzione
Passo 2) Nella prossima finestra
- Cerca NUnit
- Seleziona il risultato della ricerca
- Seleziona progetto
- Fare clic su Installa
Passo 3) Apparirà il popup sottostante. Fare clic sul pulsante "Ok".
Passo 4) Il messaggio seguente apparirà una volta completata l'installazione.
Passaggi per scaricare l'adattatore di test NUnit
Ora in questo tutorial di NUnit, tratteremo i passaggi per scaricare l'adattatore di test NUnit:
Si prega di notare che i passaggi sottostanti funzionano solo per macchine a 32 bit. Per macchine a 64 bit, è necessario scaricare 'NUnit3 Test Adapter' seguendo lo stesso processo indicato di seguito.
Passo 1) Passare a Strumenti ->NuGet Gestore pacchetti -> Gestisci NuGet Pacchetti per la soluzione. In quella schermata,
- Cerca NUnitTestAdapter
- Fare clic su Risultato della ricerca
- Seleziona progetto
- Fare clic su Installa
Passo 2) Fai clic su OK nel pop-up di conferma. Una volta completata l'installazione, vedrai il seguente messaggio:
Selenium e il quadro NUnit
L'integrazione del selenio con il framework NUnit consente al tester di distinguere tra varie classi di test. NUnit consente inoltre ai tester di utilizzare annotazioni come SetUp, Test e TearDown per eseguire azioni prima e dopo l'esecuzione del test.
È possibile integrare il framework NUnit Selenium creando una classe di test NUnit ed eseguendo la classe di test utilizzando il framework NUnit.
Di seguito i passaggi in questo Selenium Sono necessari tutorial sul framework C# per creare ed eseguire una classe di test utilizzando il framework NUnit.
Passaggi per creare una classe NUnit Test in Selenium:
Passo 1) In Esplora soluzioni, fare clic con il pulsante destro del mouse su progetto > Aggiungi > Classe
Passo 2) Apparirà la finestra di creazione della classe.
- Dai un nome alla classe
- Fare clic sul pulsante Aggiungi
Passo 3) Apparirà la schermata seguente.
Passo 4) Aggiungere il seguente codice alla classe creata. Si noti che è necessario specificare la posizione del file 'chromdriver.exe' durante l'inizializzazione del driver Chrome.
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(); } } }
Passo 4) Fare clic su "Crea" -> "Crea soluzione"
NOTA: Potresti ricevere un errore come "Non contiene un metodo 'principale' statico adatto a un punto di ingresso" durante la compilazione
Per risolvere questo problema, vai su Progetto> Proprietà e modifica il tipo di output in "Libreria di classi". L'impostazione predefinita è "Applicazione console".
Passo 5) Una volta che la compilazione ha avuto esito positivo, dobbiamo aprire la finestra Test Explorer. Fare clic su Prova -> Windows -> Esplora prove
Passo 6) Si apre la finestra Esplora test con l'elenco dei test disponibili. Fare clic con il pulsante destro del mouse su Esplora test e selezionare Esegui test selezionati
Passo 7) Selenium è necessario aprire il browser con l'URL specificato e chiudere il browser. Lo stato del test case verrà modificato in "Passato" nella finestra Esplora test.
Selenium Comandi WebDriver in C#
C# utilizza l'interfaccia 'IWebDriver' per le interazioni con il browser. Di seguito sono riportate le categorie di comandi disponibili con Selenium in C #.
- Comandi del browser
- Comandi dell'elemento Web
- Comandi a discesa
Ora nel Selenium Tutorial C Sharp, studiamo il Selenium WebDriver comanda uno per uno
Comandi del browser:
Di seguito è riportato un elenco dei comandi del browser disponibili in C# con Selenium.
Nome del comando | Descrizione | Sintassi |
---|---|---|
Comando URL | Questo comando viene utilizzato per aprire un URL specificato nel browser. |
driver.Url = "https://www.guru99.com" |
Comando del titolo | Questo comando viene utilizzato per recuperare il titolo della pagina Web attualmente aperta |
String title = driver.Title |
Comando PageSource | Questo comando viene utilizzato per recuperare il codice sorgente della pagina Web attualmente aperta. |
String pageSource = driver.PageSource |
Comando Chiudi | Questo comando viene utilizzato per chiudere l'istanza del browser aperta di recente. |
driver.Close(); |
Esci dal comando | Questo comando viene utilizzato per chiudere tutte le istanze del browser aperte |
driver.Quit(); |
Comando indietro | Questo comando viene utilizzato per passare alla pagina precedente della cronologia del browser. |
driver.Navigate().Back(); |
Comando in avanti | Questo comando viene utilizzato per passare alla pagina successiva della cronologia del browser. |
driver.Navigate().Forward() |
Aggiorna comando | Questo comando viene utilizzato per eseguire l'aggiornamento del browser. |
driver.Navigate().Refresh() |
Comandi dell'elemento Web
Un Webelement rappresenta tutti gli elementi di una pagina web. Sono rappresentati da tag HTML. Ognuno dei pulsanti, caselle di testo, link, immagini, tabelle e frame rientra nei Webelement. OperaLe azioni sugli elementi web possono essere attivate tramite l'interfaccia IWebelement. Per interagire con un Webelement, dobbiamo trovare l'elemento sulla pagina web e quindi eseguire operazioni su di esso. Strumenti come Firebug e Firepath possono essere utilizzati per identificare l' xpath di Webelement.
Di seguito è riportato l'elenco dei comandi Webelement disponibili in C#.
Nome del comando | Descrizione | Sintassi |
---|---|---|
Fare clic sul comando | Questo comando è utilizzato per fare clic su un Webelement. Affinché l'elemento sia cliccabile, deve essere visibile sulla pagina Web. Questo comando è utilizzato anche per le operazioni di checkbox e radio button. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Click(); |
Comando chiaro | Questo comando è utilizzato specificatamente per cancellare il contenuto esistente delle caselle di testo. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Clear(); |
Comando InviaChiavi | Questo comando serve per immettere un valore nelle caselle di testo. Il valore da immettere deve essere passato come parametro a |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.SendKeys("guru99"); |
Comando visualizzato | Questo comando viene utilizzato per identificare se un elemento specifico è visualizzato sulla pagina web. Questo comando restituisce un valore booleano; vero o falso a seconda della visibilità dell'elemento web. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Displayed; |
Comando abilitato | Questo comando viene utilizzato per identificare se un particolare elemento web è abilitato sulla pagina web. Questo comando restituisce un valore booleano; vero o falso di conseguenza. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Enabled; |
Comando selezionato | Questo comando è utilizzato per identificare se un particolare elemento web è selezionato. Questo comando è utilizzato per caselle di controllo, pulsanti di scelta e operazioni di selezione. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Selected; |
Invia comando: | Questo comando è simile al comando clic, la differenza sta nel fatto che il modulo HTML abbia un pulsante con il tipo Invia. Mentre il clic command fa clic su qualsiasi pulsante, il comando di invio fa clic solo sui pulsanti con tipo invio. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.submit(); |
Comando testuale | Questo comando restituisce il testo interno di un elemento Web. Come risultato questo comando restituisce un valore stringa. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String text=element.Text; |
Comando NomeTag | Questo comando restituisce il tag HTML di un elemento web. Restituisce un valore stringa come risultato. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String tagName = element.TagName; |
Comando GetCSSValue: | Questo metodo viene utilizzato per restituire il colore di un elemento web sotto forma di una stringa rgba (rosso, verde, blu e alfa). |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String color = element.getCSSValue; Uscita– Se il colore dell'elemento è rosso, l'output sarà rgba(255,0,0,1) |
Comandi a discesa:
Le operazioni a discesa in C# possono essere ottenute utilizzando la classe SelectElement.
Di seguito sono elencate le varie operazioni a discesa disponibili in C#.
Nome del comando | Descrizione | Sintassi |
---|---|---|
Comando Seleziona per testo | Questo comando seleziona un'opzione di un menu a discesa in base al testo dell'opzione. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByText("Guru99"); |
Comando Seleziona per indice | Questo comando viene utilizzato per selezionare un'opzione in base al suo indice. L'indice del menu a discesa inizia da 0. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByIndex("4"); |
Comando Seleziona per valore | Questo comando viene utilizzato per selezionare un'opzione in base al relativo valore dell'opzione. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByValue("Guru99"); |
Comando Opzioni | Questo comando viene utilizzato per recuperare l'elenco delle opzioni visualizzate in un menu a discesa. |
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); } Il codice sopra stampa tutte le opzioni sulla console all'interno di un menu a discesa. |
Comando ÈMultiplo | Questo comando viene utilizzato per identificare se un menu a discesa è un menu a discesa a selezione multipla; Un menu a discesa a selezione multipla consente all'utente di selezionare più di un'opzione alla volta in un menu a discesa. Questo comando restituisce un valore booleano. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); Boolean status = select.IsMultiple(); |
Comando DeSelezionaTutto | Questo comando viene utilizzato nei menu a discesa a selezione multipla. Cancella le opzioni già selezionate. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectAll(); |
Comando DeSelectByIndex | Questo comando deseleziona un valore già selezionato utilizzando il suo indice. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByIndex("4"); |
Comando DeSelectByValue | Questo comando deseleziona un valore già selezionato utilizzando il suo valore. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByValue("Guru99"); |
Comando DeSelezionaPerTesto | Questo comando deseleziona un valore già selezionato utilizzando il suo testo. |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByText("Guru99"); |
Esempi di codice
Esempio 1: fare clic su un collegamento utilizzando XPATH Locator:
Scenario di prova:
- Passare alla pagina Web Demo Guru99 – https://demo.guru99.com/test/guru99home/
- Massimizza la finestra
- Fare clic sul menu "Test".
- Chiudi il browser
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(); } } }
Esempio 2: immissione di dati in testoBox e fare clic su un pulsante utilizzando il localizzatore XPATH:
Scenario di prova:
- Passare alla pagina demo di Guru 99 – https://demo.guru99.com/test/guru99home/
- Inserisci i dati nella casella di testo dell'e-mail
- Fare clic sul pulsante di registrazione
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(); } } }
Esempio 3: immissione di dati in testoBox e fare clic su un pulsante utilizzando il localizzatore CSS:
Scenario di prova:
- Passare alla pagina demo di Guru 99 – https://demo.guru99.com/test/guru99home/
- Inserisci i dati nella casella di testo dell'e-mail
- Fare clic sul pulsante di registrazione
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(); } } }
Esempio 4: selezionare un valore nel menu a discesa:
Scenario di prova:
- Passare alla pagina demo di Guru 99 – https://demo.guru99.com/test/guru99home/
- Fare clic su SAP link
- Inserisci i dati nelle caselle di testo nome ed e-mail
- Seleziona un valore dal menu a discesa Corso
- Chiudi il browser
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"); } } }
Sintesi
- Per poter utilizzare Selenium WebDriver con C#, è necessario installare Visual Studio.
- NUnit è il framework di test unitario supportato da Visual Studio e Selenium driver web
- Per poterlo utilizzare, dobbiamo installare NUnit Framework e NUnit Test Adapter su Visual Studio.
- È possibile integrare il framework NUnit Selenium creando una classe di test NUnit ed eseguendo la classe di test utilizzando il framework NUnit.
- NUnit consente inoltre ai tester di utilizzare annotazioni come SetUp, Test e TearDown per eseguire azioni prima e dopo l'esecuzione del test.
- Selenium I comandi WebDriver possono essere classificati in comandi del browser, comandi di elementi Web e comandi a discesa.