implementation our first webdriver script selenium webdriver tutorial 10
Als dos tutorials anteriors us vam fer conèixer l’arquitectura bàsica i funcions de WebDriver i la infraestructura necessària per començar amb Selenium WebDriver . Suposant que tots podríeu haver configurat el sistema amb totes les utilitats i paquets necessaris, anirem més enllà amb la implementació del nostre primer script de prova de WebDriver.
Per tant, avançant amb el consegüent Tutorial de Selenium WebDriver , crearíem un script WebDriver. També escamparíem la llum sobre el bàsic i el més utilitzat Ordres de WebDriver . També coneixeríem el localització d’estratègies d’elements d’interfície d’usuari i la seva inclusió als scripts de prova. També estudiaríem Get Commands amb detall.
Què aprendreu:
- Creació de guions
- Resolució de codi
- Execució de la prova
- Localització d’elements web
- Tipus de localitzadors i la seva sintaxi
- Conclusió
- Lectura recomanada
Creació de guions
Per a la creació de seqüències d’ordres, faríem servir el projecte “Learning_Selenium” creat al tutorial anterior i “gmail.com” com a aplicació a prova (AUT).
Escenari:
- Inicieu el navegador i obriu 'Gmail.com'.
- Verifiqueu el títol de la pàgina i imprimiu el resultat de la verificació.
- Introduïu el nom d'usuari i la contrasenya.
- Feu clic al botó Inicia la sessió.
- Tanqueu el navegador web.
Pas 1: Creeu una nova classe java anomenada 'Gmail_Login' al projecte 'Learning_Selenium'.
Pas 2: Copieu i enganxeu el codi següent a la 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); } }
El codi anterior és equivalent a l’escenari textual presentat anteriorment.
Resolució de codi
Importar declaracions:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Abans de la seqüència de comandaments real, hem d'importar els paquets anteriors:
importació org.openqa.selenium.WebDriver - Fa referència a la interfície WebDriver que és necessària per crear un nou navegador web.
importació org.openqa.selenium.firefox.FirefoxDriver - Fa referència a la classe FirefoxDriver que es requereix per instanciar un controlador específic de Firefox a la instància del navegador instanciada mitjançant la interfície WebDriver.
importació org.openqa.selenium.WebElement - Referències a la classe WebElement necessària per crear un element web nou.
importació org.openqa.selenium.By - Referències a la classe By on es diu un tipus de localitzador.
A mesura que creixi el nostre projecte, és evident i lògic que puguem haver d’introduir diversos altres paquets per a funcionalitats més complexes i diferents, com ara manipulacions Excel, connectivitat a bases de dades, registre, afirmacions, etc.
preguntes i respostes d’entrevistes de proves de rendiment
Instanciació d'objectes
Controlador WebDriver = nou FirefoxDriver ();
Creem una variable de referència per a la interfície WebDriver i la instanciem mitjançant la classe FirefoxDriver. S'iniciarà un perfil de Firefox predeterminat, cosa que significa que no es carregaran extensions i connectors amb la instància de Firefox i que s'executa en mode segur.
Inici del navegador web
driver.get (appUrl);
A aconseguir() es fa un mètode a la instància de WebDriver per iniciar una nova instància del navegador web. La seqüència de caràcters de cadena passada com a paràmetre al fitxer aconseguir() El mètode redirigeix la instància del navegador web iniciat a l'URL de l'aplicació.
Maximitza la finestra del navegador
driver.manage (). window (). maximize ();
java com invertir una matriu
El maximize () s'utilitza el mètode per maximitzar la finestra del navegador poc després de tornar a dirigir-la a l'URL de l'aplicació.
Obteniu el títol de la pàgina
driver.getTitle ();
El getTitle () s’utilitza el mètode per obtenir el títol de la pàgina web actual. Per tant, el títol obtingut es pot carregar a una variable de cadena.
Comparació entre els valors esperats i els reals:
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.'); }
El codi anterior utilitza les instruccions condicionals java constructs per comparar el valor real i el valor esperat. En funció del resultat obtingut, s'executaria la declaració d'impressió.
Instànciació WebElement
Nom d'usuari de WebElement = driver.findElement (By.id ('Correu electrònic'));
A la declaració anterior, instanciem la referència WebElement amb l'ajuda de 'Driver.findElement (By.id (' Correu electrònic '))'. Per tant, el nom d'usuari es pot utilitzar per fer referència al quadre de text Correu electrònic de la interfície d'usuari cada vegada que volem fer-hi alguna acció.
Esborra el comandament
nom d’usuari.clear ();
El mètode / ordre clear () s'utilitza per esborrar el valor present al quadre de text, si n'hi ha. També esborra el valor de marcador de posició predeterminat.
Comanda sendKeys
username.sendKeys ('TestSelenium');
El sendKeys () El mètode / ordre s’utilitza per introduir / escriure el valor especificat (entre parèntesis) al quadre de text. Fixeu-vos que el fitxer sendKeys () es fa un mètode a l'objecte WebElement que es va crear amb l'ajut de la propietat de l'element corresponent a l'element de la IU.
El bloc de codi anterior entra a la cadena 'TestSelenium' dins del quadre de text Correu electrònic de l'aplicació Gmail.
enviar claus és una de les ordres més utilitzades als scripts de WebDriver.
Feu clic a Ordre
SignInButton.click ();
M'agrada sendKeys (), feu clic a () és una altra ordre excessivament utilitzada per interactuar amb els elements web. Feu clic a () Comanda / mètode s'utilitza per fer clic a l'element web present a la pàgina web.
El bloc de codi anterior fa clic al botó 'Inicia la sessió' que apareix a l'aplicació Gmail.
Notes:
- A diferència del mètode sendKeys (), els mètodes click () mai es poden parametritzar.
- De vegades, si feu clic a un element web, es pot carregar una nova pàgina del tot. Per tal de mantenir aquests casos, el mètode click () es codifica de manera a esperar fins que es carregui la pàgina.
Tanqueu el navegador web
driver.close ();
El tancament () s’utilitza per tancar la finestra actual del navegador.
Finalitzeu el programa Java
System.exit (0);
El mètode Exit () finalitza el programa Java amb força. Per tant, recordeu tancar totes les instàncies del navegador abans de finalitzar el programa Java.
Execució de la prova
El script de prova o simplement el programa Java es poden executar de les maneres següents:
# 1. A la barra de menú d’Eclipse hi ha una icona per executar l’escript de prova. Consulteu la figura següent.
Anoteu que només s’executaria la classe seleccionada.
# 2. Feu clic amb el botó dret a qualsevol lloc de la classe dins de l'editor, seleccioneu l'opció 'Executa com' i feu clic a 'Aplicació Java'.
# 3. Una altra drecera per executar l'script de prova és: premeu ctrl + F11.
Al final del cicle d'execució, la instrucció d'impressió 'L'escript de prova s'ha executat correctament' es pot trobar a la consola.
Localització d’elements web
Els elements web de WebDriver es poden localitzar i inspeccionar de la mateixa manera que ho vam fer als tutorials anteriors de Selenium IDE. Selenium IDE i Firebug es poden utilitzar per inspeccionar l'element web a la GUI. Es recomana utilitzar Selenium IDE per trobar els elements web. Quan l'element web s'hagi trobat correctament, copieu i enganxeu el valor de destinació al codi WebDriver. Els tipus de localitzadors i les estratègies de localització són pràcticament els mateixos, tret de la sintaxi i la seva aplicació.
A WebDriver, els elements web es localitzen amb l'ajut dels cercadors dinàmics (findElement (By.locatorType ('valor localitzador'))).
Codi de mostra:
driver.findElement (By.id ('Correu electrònic'));
el millor bloquejador de finestres emergents gratuït crom
Tipus de localitzadors i la seva sintaxi
Tipus de localitzador | Sintaxi | Descripció |
---|---|---|
cssSelector | driver.findElement (By.cssSelector ('Selector CSS')) | Localitza pel valor de el selector CSS |
identificador | driver.findElement (By.id ('ID_of_Element')) | Localitza pel valor de l'atribut 'id' |
nomClasse | driver.findElement (Per nom de classe ('Class_of_Element')) | Localitza pel valor de l’atribut “class” |
linkText | driver.findElement (By.linkText ('Text')) | Localitzeu per valor del fitxer text de l’enllaç |
partialLinkText | driver.findElement (By.partialLinkText ('Text parcial')) | Localitzeu per valor del fitxer sub-text de l'hiperenllaç |
nom | driver.findElement (By.name ('Nom_element_element')) | Localitzeu per valor del fitxer Atribut 'nom' |
xpath | driver.findElement (By.xpath ('Xpath')) | Localitza per valor del xpath |
tagName | driver.findElement (By.tagName ('entrada')) | Localitza pel valor de el seu nom d'etiqueta |
Conclusió
En aquest tutorial, hem desenvolupat un script d'automatització mitjançant WebDriver i Java. També hem debatut sobre els diversos components que constitueixen un script de WebDriver.
Aquests són els punts clau d’aquest tutorial de Selenium WebDriver:
- Abans de la seqüència de comandaments real, hem d’importar uns quants paquets per poder crear un script de WebDriver.
- importació openqa.selenium.By;
- importació openqa.selenium.WebDriver;
- importació openqa.selenium.WebElement;
- importació openqa.selenium.firefox.FirefoxDriver;
- A aconseguir() mètode utilitzat per llançar una nova instància del navegador web. La seqüència de caràcters passada com a paràmetre al mètode get () redirigeix la instància del navegador web llançat a l'URL de l'aplicació.
- El maximize () s’utilitza el mètode per maximitzar la finestra del navegador.
- El clear () s'utilitza el mètode per esborrar el valor present al quadre de text, si n'hi ha.
- El sendKeys () s’utilitza el mètode per introduir el valor especificat al quadre de text.
- Feu clic a () s'utilitza el mètode per fer clic a l'element web present a la pàgina web.
- A WebDriver, els elements web es poden localitzar mitjançant cercadors dinàmics.
- A continuació es detallen els tipus de localitzadors disponibles:
- identificador
- nomClasse
- nom
- xpath
- cssSelector
- linkText
- partialLinkText
- tagName
Avançant, en el següent tutorial, canviaríem el nostre enfocament cap a un marc que ajudés a les proves d'automatització conegudes com TestNG. Disposaríem d’un estudi detallat sobre els diversos tipus d’anotacions que proporciona el marc.
Pròxim tutorial núm. 11 : Abans de capbussar-nos profundament en Frameworks, veurem detalls sobre JUnit, una eina de prova d’unitat de codi obert La majoria dels programadors utilitzen JUnit, ja que és fàcil i no fa gaire esforç provar-ho. Aquest tutorial us donarà una idea sobre JUnit i el seu ús en script de seleni.
Una observació per als lectors: Tot i que el nostre proper tutorial de la sèrie Selenium està en mode de processament, els lectors poden començar a crear els seus propis scripts bàsics de WebDriver. Per obtenir més guions i conceptes avançats, tindrem diversos altres tutorials de Selenium WebDriver que vindran en aquesta sèrie.
Indiqueu-nos als comentaris si teniu algun problema per crear o executar els scripts de WebDriver.
Lectura recomanada
- Introducció a Selenium WebDriver - Tutorial Selenium núm. 8
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Configuració i instal·lació senceres de WebDriver amb Eclipse - Selenium Tutorial # 9
- Comproveu la visibilitat dels elements web mitjançant diversos tipus d’ordres de WebDriver - Tutorial Selenium núm. 14
- Escenaris de scripts i resolució de problemes de Selenium eficients: Tutorial Selenium núm. 27
- Com gestionar les alertes / finestres emergents a Selenium WebDriver - Tutorial Selenium núm. 16
- Depuració d’escriptures de Selenium amb registres (Tutorial Log4j) - Tutorial Selenium núm. 26
- Introducció a JUnit Framework i el seu ús a Selenium Script - Selenium Tutorial # 11