implementation our first webdriver script selenium webdriver tutorial 10
Nei due tutorial precedenti, ti abbiamo fatto conoscere l'architettura di base e caratteristiche di WebDriver e il infrastruttura necessaria per iniziare con Selenium WebDriver . Supponendo che tutti voi abbiate configurato il sistema con tutte le utilità e i pacchetti necessari, andremo oltre con l'implementazione del nostro primo script di test WebDriver.
Pertanto, avanzando con il conseguente Selenium WebDriver tutorial , creeremmo lo script WebDriver. Spargeremmo anche la luce sulle cose di base e comunemente usate Comandi WebDriver . Avremmo anche imparato a conoscere il individuare le strategie degli elementi dell'interfaccia utente e la loro inclusione negli script di test. Studieremo anche Get Commands in dettaglio.
Cosa imparerai:
- Creazione di script
- Procedura dettagliata del codice
- Esecuzione del test
- Individuazione degli elementi web
- Tipi di localizzatore e loro sintassi
- Conclusione
- Lettura consigliata
Creazione di script
Per la creazione di script, utilizzeremo il progetto 'Learning_Selenium' creato nel tutorial precedente e 'gmail.com' come applicazione in test (AUT).
Scenario:
- Avvia il browser e apri 'Gmail.com'.
- Verifica il titolo della pagina e stampa il risultato della verifica.
- Immettere il nome utente e la password.
- Fare clic sul pulsante Accedi.
- Chiudi il browser web.
Passo 1: Crea una nuova classe java denominata 'Gmail_Login' nel progetto 'Learning_Selenium'.
Passo 2: Copia e incolla il codice seguente nella classe 'Gmail_Login.java'.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Gmail_Login { /** * @param args */ public static void main(String[] args) { // objects and variables instantiation WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; // launch the firefox browser and open the application url driver.get(appUrl); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); // compare the expected title of the page with the actual title of the page and print the result if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); } // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); System.out.println('Test script executed successfully.'); // terminate the program System.exit(0); } }
Il codice sopra è equivalente allo scenario testuale presentato in precedenza.
Procedura dettagliata del codice
Dichiarazioni di importazione:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Prima dello scripting effettivo, dobbiamo importare i pacchetti sopra:
importare org.openqa.selenium.WebDriver - Fa riferimento all'interfaccia WebDriver necessaria per creare un'istanza di un nuovo browser web.
importare org.openqa.selenium.firefox.FirefoxDriver - Fa riferimento alla classe FirefoxDriver richiesta per creare un'istanza di un driver specifico per Firefox sull'istanza del browser istanziata utilizzando l'interfaccia WebDriver.
importare org.openqa.selenium.WebElement - Riferimenti alla classe WebElement richiesta per istanziare un nuovo elemento web.
importare org.openqa.selenium.By - Riferimenti alla classe By su cui viene chiamato un tipo di localizzatore.
Man mano che il nostro progetto cresceva, è evidente e logico che potremmo dover introdurre molti altri pacchetti per funzionalità più complesse e distinte come manipolazioni excel, connettività database, registrazione, asserzioni ecc.
software di scheda attività gratuito per piccole imprese
Istanziazione di oggetti
Driver WebDriver = nuovo FirefoxDriver ();
Creiamo una variabile di riferimento per l'interfaccia WebDriver e la istanziamo utilizzando la classe FirefoxDriver. Verrà avviato un profilo Firefox predefinito, il che significa che nessuna estensione e plug-in verrà caricato con l'istanza di Firefox e che verrà eseguito in modalità provvisoria.
Avvio del browser Web
driver.get (appUrl);
PER ottenere() viene chiamato sull'istanza WebDriver per avviare una nuova istanza del browser web. La sequenza di caratteri stringa passata come parametro nel file ottenere() il metodo reindirizza l'istanza del browser Web avviata all'URL dell'applicazione.
Ingrandisci la finestra del browser
driver.manage (). window (). maxim ();
Il massimizzare () viene utilizzato per ingrandire la finestra del browser subito dopo essere stata reindirizzata all'URL dell'applicazione.
Recupera il titolo della pagina
driver.getTitle ();
Il getTitle () viene utilizzato per recuperare il titolo della pagina web corrente. Pertanto, il titolo recuperato può essere caricato in una variabile stringa.
Confronto tra valori attesi ed effettivi:
if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); }
Il codice precedente utilizza i costrutti java dell'istruzione condizionale per confrontare il valore effettivo e il valore previsto. In base al risultato ottenuto, verrà eseguita l'istruzione print.
Istanziazione WebElement
Nome utente WebElement = driver.findElement (By.id ('Email'));
java passa l'array al metodo per riferimento
Nella dichiarazione precedente, istanziamo il riferimento WebElement con l'aiuto di 'Driver.findElement (By.id (' Email '))'. Pertanto, il nome utente può essere utilizzato per fare riferimento alla casella di testo E-mail sull'interfaccia utente ogni volta che si desidera eseguire un'azione su di essa.
Clear Command
nomeutente.clear ();
Il metodo / comando clear () viene utilizzato per cancellare il valore presente nella casella di testo, se presente. Cancella anche il valore segnaposto predefinito.
comando sendKeys
username.sendKeys ('TestSelenium');
Il sendKeys () metodo / comando viene utilizzato per immettere / digitare il valore specificato (tra parentesi) nella casella di testo. Si noti che il file sendKeys () viene chiamato sull'oggetto WebElement che è stato istanziato con l'aiuto della proprietà dell'elemento corrispondente all'elemento dell'interfaccia utente.
Il blocco di codice sopra riportato inserisce la stringa 'TestSelenium' all'interno della casella di testo Email sull'applicazione Gmail.
sendKeys è uno dei comandi più comunemente usati negli script WebDriver.
Fare clic su Comando
SignInButton.click ();
Piace sendKeys (), fare clic su () è un altro comando eccessivamente utilizzato per interagire con gli elementi web. Clic() comando / metodo viene utilizzato per fare clic sull'elemento web presente nella pagina web.
Il blocco di codice precedente fa clic sul pulsante 'Accedi' presente nell'applicazione Gmail.
Appunti:
- A differenza del metodo sendKeys (), i metodi click () non possono mai essere parametrizzati.
- A volte, fare clic su un elemento web può caricare completamente una nuova pagina. Quindi, per sostenere tali casi, il metodo click () è codificato in modo da attendere il caricamento della pagina.
Chiudi il browser web
driver.close ();
Il close () viene utilizzato per chiudere la finestra del browser corrente.
domande e risposte dell'intervista di test del software per 2 anni di esperienza
Termina il programma Java
System.exit (0);
Il metodo Exit () termina forzatamente il programma Java. Pertanto, ricordarsi di chiudere tutte le istanze del browser prima di terminare il programma Java.
Esecuzione del test
Lo script di test o semplicemente il programma java può essere eseguito nei seguenti modi:
# 1. Sotto la barra dei menu di Eclipse, c'è un'icona per eseguire lo script di test. Fare riferimento alla figura seguente.
Annotare che verrà eseguita solo la classe selezionata.
#Due. Fare clic con il pulsante destro del mouse in qualsiasi punto all'interno della classe all'interno dell'editor, selezionare l'opzione 'Esegui come' e fare clic su 'Applicazione Java'.
# 3. Un'altra scorciatoia per eseguire lo script di test è: premere ctrl + F11.
Alla fine del ciclo di esecuzione, l'istruzione print 'Script di test eseguito con successo'. può essere trovato nella console.
Individuazione degli elementi web
Gli elementi Web in WebDriver possono essere individuati e ispezionati nello stesso modo in cui abbiamo fatto i tutorial precedenti di Selenium IDE. Selenium IDE e Firebug possono essere utilizzati per ispezionare l'elemento web sulla GUI. Si consiglia vivamente di utilizzare Selenium IDE per trovare gli elementi web. Una volta che l'elemento web è stato trovato con successo, copia e incolla il valore di destinazione all'interno del codice WebDriver. I tipi di localizzatori e le strategie di localizzazione sono praticamente gli stessi tranne che per la sintassi e la loro applicazione.
In WebDriver, gli elementi web vengono individuati con l'aiuto dei cercatori dinamici (findElement (By.locatorType ('locator value'))).
Codice di esempio:
driver.findElement (By.id ('Email'));
Tipi di localizzatore e loro sintassi
Tipo di localizzatore | Sintassi | Descrizione |
---|---|---|
cssSelector | driver.findElement (By.cssSelector ('Selettore CSS')) | Individua per valore di il selettore CSS |
id | driver.findElement (By.id ('ID_of_Element')) | Individua per valore di l'attributo 'id' |
nome della classe | driver.findElement (Di.className ('Class_of_Element')) | Individua per valore di l'attributo 'class' |
linkText | driver.findElement (By.linkText ('Text')) | Individua per valore di testo del collegamento ipertestuale |
partialLinkText | driver.findElement (Da.partialLinkText ('PartialText')) | Individua per valore di sottotesto del collegamento ipertestuale |
nome | driver.findElement (Per nome ('Nome_di_elemento')) | Individua per valore di Attributo 'nome' |
xpath | driver.findElement (By.xpath ('Xpath')) | Individua per valore di xpath |
tagName | driver.findElement (By.tagName ('input')) | Individua per valore di il nome del tag |
Conclusione
In questo tutorial, abbiamo sviluppato uno script di automazione utilizzando WebDriver e Java. Abbiamo anche discusso i vari componenti che costituiscono uno script WebDriver.
Ecco i punti cruciali di questo tutorial Selenium WebDriver:
- Prima dello scripting effettivo, dobbiamo importare alcuni pacchetti per poter creare uno script WebDriver.
- importare openqa.selenium.By;
- importare openqa.selenium.WebDriver;
- importare openqa.selenium.WebElement;
- importare openqa.selenium.firefox.FirefoxDriver;
- PER ottenere() metodo utilizzato per avviare una nuova istanza del browser web. La sequenza di caratteri passata come parametro nel metodo get () reindirizza l'istanza del browser Web avviata all'URL dell'applicazione.
- Il massimizzare () viene utilizzato per ingrandire la finestra del browser.
- Il chiaro() viene utilizzato per cancellare il valore presente nella casella di testo, se presente.
- Il sendKeys () viene utilizzato per immettere il valore specificato nella casella di testo.
- Clic() viene utilizzato per fare clic sull'elemento web presente nella pagina web.
- In WebDriver, gli elementi web possono essere individuati utilizzando i cercatori dinamici.
- I seguenti sono i tipi di localizzatori disponibili:
- id
- nome della classe
- nome
- xpath
- cssSelector
- linkText
- partialLinkText
- tagName
Andando avanti, nel prossimo tutorial, sposteremo la nostra attenzione verso un framework che aiuti ai test di automazione noto come TestNG. Avremmo uno studio dettagliato sui vari tipi di annotazioni fornite dal framework.
Prossimo tutorial n. 11 : Prima di approfondire i framework vedremo i dettagli su JUnit, uno strumento di unit test open source. La maggior parte dei programmatori utilizza JUnit in quanto è facile e non richiede molto sforzo per il test. Questo tutorial fornirà una panoramica su JUnit e sul suo utilizzo nello script di selenio.
Un'osservazione per i lettori: Mentre il nostro prossimo tutorial della serie Selenium è in modalità di elaborazione, i lettori possono iniziare a creare i propri script WebDriver di base. Per script e concetti più avanzati, avremo vari altri tutorial Selenium WebDriver in arrivo in questa serie.
Fateci sapere nei commenti se avete problemi nella creazione o nell'esecuzione degli script WebDriver.
Lettura consigliata
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- WebDriver intera configurazione e installazione con Eclipse - Selenium Tutorial # 9
- Verifica la visibilità degli elementi Web utilizzando vari tipi di comandi WebDriver - Selenium Tutorial # 14
- Scripting efficiente del selenio e scenari di risoluzione dei problemi - Tutorial sul selenio n. 27
- Come gestire avvisi / popup in Selenium WebDriver - Selenium Tutorial # 16
- Debug degli script di selenio con i registri (tutorial di Log4j) - Esercitazione di selenio # 26
- Introduzione a JUnit Framework e al suo utilizzo in Selenium Script - Selenium Tutorial # 11