top 25 selenium webdriver commands that you should know
Principals ordres de Selenium WebDriver: una guia fenomenal per a verificadors d'automatització
Selenium WebDriver és una de les eines d'automatització de llocs web de codi obert més populars. La majoria dels meus companys de proves d'automatització prefereixen la combinació de WebDriver amb Java.
En aquest tutorial, parlaré de 25 ordres de Selenium WebDriver que s’utilitzen habitualment juntament amb la seva sintaxi i exemples senzills per facilitar-ne la comprensió.
Què aprendreu:
- Tipus d'ordres a WebDriver
- Top 7 comandaments de seleni amb detalls
- Llista de 25 comandes i exemples més populars de WebDriver
- # 1) get ()
- # 2) getCurrentUrl ()
- # 3) findElement (Per, per) i feu clic a ()
- # 4) isEnabled ()
- # 5) findElement (By, by) amb sendKeys ()
- # 6) findElement (By, by) amb getText ()
- # 7) Envia ()
- # 8) findElements (Per, per)
- # 9) findElements (By, by) amb size ()
- # 10) pageLoadTimeout (temps, unitat)
- # 11) implicitlyWait ()
- # 12) untill () i visibleOfElementLocated ()
- # 13) untill () i alertIsPresent ()
- # 14) getTitle ()
- # 15) Seleccioneu
- # 16) navegar ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () i accept (), dismiss () i sendKeys ()
- # 21) getWindowHandle () i getWindowHandles ()
- # 22) getConnection ()
- # 23) DESPRÉS
- # 24) assertEquals (), assertNotEquals (), assertTrue () i assertFalse ()
- # 25) close () i quit ()
- Conclusió
- Lectura recomanada
Tipus d'ordres a WebDriver
A la darrer tutorial de Selenium , vam discutir el diferents tipus d’alertes trobats en provar aplicacions basades en web i les seves maneres efectives de maneig. Vam discutir els dos tipus d'alertes, és a dir, 'Alertes basades en web' i 'Alertes basades en finestres'. També us vam fer conèixer una altra utilitat basada en Java anomenada 'Robot Class' per gestionar les finestres emergents basades en Windows.
Avançant endavant aquesta sèrie de tutorials de Selenium WebDriver , estaríem pressionant diverses ordres Selenium WebDriver d'ús comú i rutinari . Discutirem de manera precisa i breu cadascuna d'aquestes ordres de Selenium per tal de fer-vos capaç d'utilitzar aquestes ordres de manera eficaç sempre que sorgeixi la situació.
Tots els fitxers de treball Java d'automatització comencen creant una referència del navegador web que volem utilitzar tal com s'esmenta a la sintaxi següent.
Hi ha diversos mètodes disponibles a la interfície Webdriver. S'accedeix a aquests mètodes mitjançant la variable d'instància conductor en un format senzill driver.methodName (); . Tots aquests projectes d'automatització inclouen cridar aquests mètodes i comparar i avaluar el que realment retornen.
En termes simples, generalment podem classificar les ordres de Webdriver com:
- Ordres del navegador,
- Obteniu ordres,
- Comandes de navegació,
- Ordres Webelement,
- Comandes d'acció i
- Ordres de resultat.
Des del context de les proves manuals, el resultat d'una prova, ja sigui PASS o FAIL, es decideix a partir de les ordres de Resultat que solen comparar els resultats esperats i reals i la resta són passos de Testcase.
Top 7 comandaments de seleni amb detalls
Només per tenir una idea aproximada, estaríem discutint les següents ordres de Selenium WebDriver i les seves diferents versions:
- aconseguir() mètodes
- Localització d’enllaços per linkText () i partialLinkText ()
- Selecció de diversos elements en un menú desplegable
- Enviant un formulari
- Manipulació d’iframes
- Tanca() i deixar () mètodes
- Manipulació d’excepcions
# 1) mètodes get ()
Comanda WebDriver | Ús |
---|---|
getAttribute () | • L'ordre s'utilitza per recuperar el valor de l'atribut especificat • L'ordre requereix un paràmetre de cadena única que es refereixi a un atribut el valor del qual aspirem a conèixer i, com a resultat, retorna un valor de cadena. driver.findElement (By.id ('findID')). getAttribute ('valor'); |
aconseguir() | • L'ordre llança un navegador nou i s'obre l’URL especificat a la instància del navegador • L'ordre pren un paràmetre de tipus de cadena que sol ser un URL de l'aplicació que es prova • Per als usuaris de Selenium IDE, l'ordre pot semblar-se molt a l'ordre obert driver.get ('https://google.com'); |
getClass () | L'ordre s'utilitza per recuperar l'objecte Class que representa la classe d'execució d'aquest objecte driver.getClass (); |
getCurrentUrl () | • L'ordre s'utilitza per recuperar l'URL de la pàgina web a la qual l'usuari accedeix actualment • L'ordre no requereix cap paràmetre i retorna un valor de cadena driver.getCurrentUrl (); |
getPageSource () | • L'ordre s'utilitza per recuperar l'origen de la pàgina de la pàgina web a la qual accedeix l'usuari actualment • L'ordre no requereix cap paràmetre i retorna un valor de cadena • L'ordre es pot utilitzar amb diverses operacions de cadena com conté () per determinar el fitxer presència del valor de cadena especificat resultat booleà = driver.getPageSource (). contains ('Cadena per trobar'); |
getTitle () | • L'ordre s'utilitza per recuperar el títol de la pàgina web en què està treballant l'usuari actualment. Es torna una cadena nul·la si la pàgina web no té cap títol • L'ordre no requereix cap paràmetre i retorna un valor de cadena retallada Cadena title = driver.getTitle (); |
getText () | • L'ordre s'utilitza per recuperar el text intern de l'element web especificat • L'ordre no requereix cap paràmetre i retorna un valor de cadena • També és una de les ordres àmpliament utilitzades per a la verificació de missatges, etiquetes, errors, etc. a les pàgines web. Text de la cadena = driver.findElement (By.id ('Text')). GetText (); |
getWindowHandle () | • L'ordre s'utilitza per fer front a la situació en què tenim més d'una finestra per tractar. • L'ordre ens ajuda a canviar a la finestra recentment oberta i a realitzar accions a la finestra nova. L'usuari també pot tornar a la finestra anterior si ho desitja. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). window (winHandleBefore); |
getWindowHandles () | • L'ordre és similar al de 'getWindowHandle ()' amb la subtil diferència que ajuda a tractar amb diverses finestres, és a dir, quan hem de tractar amb més de 2 finestres. |
A continuació es mostra el fragment de codi per a 'getWindowHandles ()':
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) Localització d’enllaços per linkText () i partialLinkText ()
Accedim a 'google.com' i 'abodeqa.com' mitjançant linkText () i partialLinText () mètodes de WebDriver.
Es pot accedir als enllaços esmentats mitjançant les ordres següents:
conductor .findElement (By.linkText ( 'Google' )). feu clic a ();
conductor .findElement (By.linkText ( AbodeQA )). feu clic a ();
L'ordre troba l'element mitjançant el text de l'enllaç i, a continuació, feu clic sobre aquest element i, per tant, l'usuari es redirigiria a la pàgina corresponent.
També es pot accedir als enllaços esmentats mitjançant les ordres següents:
conductor .findElement (By.partialLinkText ( 'Goo' )). feu clic a ();
conductor .findElement (By.partialLinkText ( 'Residir' )). feu clic a ();
Les dues ordres anteriors troben els elements basats en la subcadena de l'enllaç proporcionada al parèntesi i, per tant, partialLinkText () troba l'element web amb la subcadena especificada i, a continuació, hi fa clic.
# 3) Selecció de diversos elements en un menú desplegable
Hi ha principalment dos tipus de menús desplegables:
- Menú desplegable de selecció única : Un menú desplegable que permet seleccionar només un valor alhora.
- Menú desplegable de selecció múltiple : Un menú desplegable que permet seleccionar diversos valors alhora.
Penseu en el codi HTML següent per a un menú desplegable que pugui seleccionar diversos valors alhora.
Red Green Yellow Grey
El fragment de codi següent il·lustra les diverses seleccions en un menú desplegable.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Enviant un formulari
La majoria o gairebé tots els llocs web tenen formularis que cal omplir i enviar mentre es prova una aplicació web. L'usuari pot trobar diversos tipus de formularis, com ara formulari d'inici de sessió, formulari de registre, formulari de càrrega de fitxers, formulari de creació de perfils, etc.
A WebDriver, un usuari s’aprofita amb un mètode específicament creat per enviar un formulari. L'usuari també pot utilitzar el mètode de clic per fer clic al botó d'enviament com a substitut per enviar el botó.
Consulteu el fragment de codi següent al formulari 'usuari nou' anterior:
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
Així, tan bon punt el control del programa troba el mètode d'enviament, localitza l'element i activa el fitxer Presentar() mètode a l'element web trobat.
# 5) Maneig d'iframes
Mentre s’automatitzen aplicacions web, pot haver-hi situacions en què se’ns requereixi tractar diversos fotogrames en una finestra. Per tant, el desenvolupador de seqüències de prova ha de canviar entre diversos fotogrames o iframes per una qüestió de fet.
Un acrònim de marc en línia com iframe s’utilitza per inserir un altre document dins del document HTML actual o simplement una pàgina web en una altra pàgina web activant l’anidament.
Penseu en el següent codi HTML que té l'iframe a la pàgina web:
Software Testing Help - iframe session
El codi HTML anterior il·lustra la presència d’un iframe incrustat en un altre iframe. Per tant, per poder accedir a l’iframe fill, cal que l’usuari primer vagi al iframe principal. Després de realitzar l'operació necessària, és possible que se li demani a l'usuari que torni a l'iframe pare per tractar amb l'altre element de la pàgina web.
És impossible si un usuari intenta accedir directament a l'iframe secundari sense passar primer a l'iframe principal.
Seleccioneu iframe per identificador
conductor .switchTo (). frame ( ' Identificador del marc ' );
Localització d’iframe mitjançant tagName
Mentre localitza un iframe, l’usuari pot tenir problemes si l’iframe no s’atribueix a propietats estàndard. Es converteix en un procés complex per localitzar el marc i canviar-hi. Per reduir la situació, un usuari s’aprofita per localitzar un iframe mitjançant un mètode tagName similar a la forma en què trobem qualsevol altre element web a WebDriver.
driver.switchTo (). frame (driver.findElements (By.tagName ('iframe'). get (0));
L'ordre anterior localitza el primer element web amb el tagName especificat i passa a aquest iframe. 'Get (0) s'utilitza per localitzar l'iframe amb el valor de l'índex'. Així, en línies amb el nostre codi HTML, la sintaxi del codi anterior portaria el control del programa a canviar a 'ParentFrame'.
Localització d’iframe mitjançant l’índex:
a) marc (índex)
driver.switchTo (). frame (0);
b) marc (nom del marc)
driver.switchTo (). frame ('nom del frame');
c) marc (element WebElement)
Seleccioneu Finestra pare
driver.switchTo (). defaultContent ();
L'ordre anterior torna a l'usuari a la finestra original, és a dir, fora dels dos iframes.
# 6) mètodes close () i quit ()
Hi ha dos tipus d’ordres a WebDriver per tancar la instància del navegador web.
a) tancar () : El mètode close () de WebDriver tanca la finestra del navegador web en què l’usuari treballa actualment o també podem dir la finestra a la qual està accedint el WebDriver. L'ordre no requereix cap paràmetre ni retorna cap valor.
b) deixar () : A diferència del mètode close (), el mètode quit () tanca totes les finestres que ha obert el programa. Igual que el mètode close (), l'ordre no requereix cap paràmetre ni retorna cap valor.
Consulteu els fragments de codi següents:
conductor .Tanca(); // només tanca una finestra única a la qual la instància WebDriver accedeix actualment
conductor .quit (); // tanca totes les finestres obertes per la instància de WebDriver
# 7) Gestió d'excepcions
Les excepcions són les condicions o situacions que detenen l'execució inesperada del programa.
Els motius d’aquestes condicions poden ser:
- Errors introduïts per l'usuari
- Errors generats pel programador
- Errors generats pels recursos físics
Per tant, per fer front a aquestes condicions inesperades, es va conceptualitzar el tractament de les excepcions.
Pel que fa al codi Java que implementem mentre automatitzem una aplicació web, es pot incloure dins d’un bloc que sigui capaç de proporcionar un mecanisme de manipulació contra les condicions errònies.
S'està capturant una excepció
Per obtenir una excepció, fem servir el bloc de codi següent
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Si es produeix alguna excepció al bloc de prova / bloc protegit, els controls d'execució comproven si hi ha un bloc de captura per al tipus d'excepció coincident i li transmet l'excepció sense interrompre l'execució del programa.
Múltiples blocs de captura
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
Al codi anterior, és probable que es detecti una excepció al primer bloc de captures si coincideix el tipus d’excepció. Si el tipus d'excepció no coincideix, l'excepció es trasllada al segon bloc de captura i al tercer bloc de captura, etc. fins que es visiten tots els blocs de captura.
Condicions de WebDriver i Gestió d'excepcions
Quan aspirem a verificar la presència d'algun element a la pàgina web mitjançant diverses ordres condicionals de WebDriver, WebDriver presumeix que l'element web estarà present a la pàgina web. Si l'element web no està present a la pàgina web, les ordres condicionals generen una 'NoSuchElementPresentException'. Per tant, per evitar aquestes excepcions a l’hora d’aturar l’execució del programa, fem servir mecanismes d’excepció. Consulteu el fragment de codi següent:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Llista de 25 comandes i exemples més populars de WebDriver
A continuació es mostra la llista dels 25 millors comandaments de Webdriver que s’utilitzen habitualment i que tots els provadors d’automatització han de conèixer.
Anem a revisar aquestes ordres un per un en detall.
Lectures addicionals => Tutorial de Selenium WebDriver
# 1) get ()
Ordeneu amb get () per obrir una URL al navegador actual.
L'ordre següent obrirà l'URL especificat, 'https://www.softwaretestinghelp.com' al navegador.
Sintaxi:
driver.get('https://www.softwaretestinghelp.com');
Explicació:
- Aneu a l'URL https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Ordeneu mitjançant getCurrentUrl () per comprovar si l'URL és correcta.
L'ordre següent obté l'URL actual en format de cadena.
Sintaxi:
conversió char a int c ++
driver.getCurrentUrl();
Normalment utilitzem aquest mètode a les ordres per comprovar si hem navegat a la pàgina correcta com s’esperava. Per a això, hem d’utilitzar Assert tal com es mostra a continuació Exemple .
Sintaxi:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
On expectedUrl és l'URL que s'espera en format de cadena.
Explicació:
- Comproveu i comproveu que l'URL carregat continua sent el mateix i que es carrega la pàgina correcta.
# 3) findElement (Per, per) i feu clic a ()
findElement (Per, per) i feu clic a () per fer clic a qualsevol element de la pàgina web.
El mètode findElement (Per, per) cerca i localitza el primer element de la pàgina actual, que coincideix amb els criteris donats com a paràmetre. Aquest mètode sol utilitzar-se en ordres per simular accions de l'usuari com fer clic, enviar, escriure, etc.
L'ordre següent cerca i localitza el primer element de la pàgina web amb l'identificador 'submit1' i hi fa clic si no està cobert.
Sintaxi:
driver.findElement(By.id('submit1')).click();
L'element es pot localitzar mitjançant Identificació , Nom , Classe Nom , Nom de l'etiqueta , Text de l'enllaç i Text d'enllaç parcial , Selector CSS i Camí X .
Explicació:
- Cerqueu el botó Enviar obligatori.
- Feu clic al botó.
L'ordre següent selecciona un element del quadre de llista.
Sintaxi:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Explicació:
- Cerqueu i localitzeu l'element de la llista amb l'identificador 'nom1'.
- Feu clic sobre aquest element.
# 4) isEnabled ()
isEnabled () per comprovar si l'element està habilitat o desactivat al Selenium WebDriver.
Per comprovar si un element concret està habilitat en una pàgina web, fem servir el mètode isEnabled ().
Sintaxi:
boolean textBox = driver.findElement(By.xpath('//input[@name='textbox1']')).isEnabled();
Explicació:
- Cerca l'element a la pàgina web segons xpath i comprova si l'element està habilitat.
# 5) findElement (By, by) amb sendKeys ()
findElement (By, by) amb sendKeys () per escriure els camps del formulari.
Feu comprovacions de validació de formularis introduint les diferents entrades d’usuari que sovint són necessàries a les proves d’automatització. Utilitzem findElement (Per, per) per localitzar els camps i sendKeys () per escriure algun contingut en un camp editable.
L'ordre següent utilitza el localitzador de noms per trobar el camp del formulari i escriu-hi 'Aaron'.
Sintaxi:
driver.findElement(By.name('name')).sendkeys('Aaron');
Explicació:
- Cerqueu el camp de nom obligatori al formulari.
- Introduïu-hi el valor 'Aaron'.
# 6) findElement (By, by) amb getText ()
findElement (By, by) amb getText () per emmagatzemar el valor de l'element web orientat.
El getText () és un mètode que us proporciona el text intern de l'element web. Obtenir text és el text dins de les etiquetes HTML.
El codi següent troba l'element amb tagName 'select' i obté el text dins de l'etiqueta i l'emmagatzema en un menú desplegable variable. Ara el menú desplegable String es pot utilitzar per a accions posteriors dins del programa.
Sintaxi:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Explicació:
- Cerqueu el camp obligatori al formulari que té el nom_etiqueta 'desplegable1'.
- Agafeu el text dins de la seva etiqueta HTML.
- Emmagatzemeu el text a l’objecte String ‘DropDown’.
# 7) Envia ()
Submit () per enviar un formulari web.
El mètode click () que hem comentat anteriorment es pot utilitzar per fer clic a qualsevol enllaç o botó. Envia () és una millor alternativa per fer clic () si l'element al qual es fa clic és un botó d'enviament. El botó d'enviament es troba dins de l'etiqueta 'formulari' HTML i el tipus de botó és 'envia' (no 'botó').
L'enviament () facilita la vida en trobar automàticament el botó i el mètode que es pot afegir a qualsevol altre camp, com ara el nom o l'adreça de correu electrònic. En el cas de fer clic, hem d’utilitzar el mètode findElement (Per, per) i especificar els localitzadors correctes.
En alguns casos en què l'acció es realitza mitjançant elements diferents d'un botó, submit () funciona i feu clic a () no.
Sintaxi:
driver.findElement(By.xpath('//input[@name='comments']')).submit();
Explicació:
- Cerqueu un element al camí x donat amb el nom 'comentaris'.
- Envieu el formulari.
# 8) findElements (Per, per)
findElements (Per, per) per obtenir la llista d'elements web.
De vegades és possible que vulguem imprimir o fer una acció en una llista d'elements web, com ara enllaços o camps d'entrada d'una pàgina web. En aquest cas, fem servir findElements (Per, per).
Sintaxi:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Explicació:
- Una llista de tots els elements web amb xpath especificat s’emmagatzema a la llista webelement allChoices.
# 9) findElements (By, by) amb size ()
findElements (By, by) amb size () per verificar si hi ha un element.
findElements (Per, per) es pot utilitzar per verificar si realment hi ha un element a la pàgina web.
L'ordre següent s'utilitza si volem verificar que hi hagi un element amb un localitzador concret en una pàgina web. Si size ()! = 0, l’element és present.
Sintaxi:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input[@id='checkbox2']')).size()!= 0;
Explicació:
- L’element Find s’especifica a xpath amb l’identificador ‘checkbox2’.
- Segons la mida de la llista d'elements, el checkIfElementPresent booleà s'establirà en TRUE o FALSE.
# 10) pageLoadTimeout (temps, unitat)
pageLoadTimeout (temps, unitat) per definir el temps de càrrega d'una pàgina.
De vegades, a causa de problemes amb el servidor o retards en la xarxa, és possible que una pàgina tardi més a carregar-se. Això pot provocar un error al programa. Per evitar-ho, establim un temps d'espera i pageLoadTimeout () és un d'aquests mètodes. Normalment, això seguirà una ordre get ().
Sintaxi:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Explicació:
- Espereu 500 segons perquè es carregui una pàgina.
# 11) implicitlyWait ()
implicitlyWait () per establir un temps d'espera abans de buscar i localitzar un element web.
Què passa si Webdriver intenta localitzar un element abans que es carregui la pàgina web i aparegui l'element? NoSuchElementExeption es llançarà. Per evitar-ho, podem afegir una ordre per esperar implícitament un temps determinat abans de localitzar l'element.
Sintaxi:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Explicació:
- Espereu implícitament 1000 segons abans d’executar la següent línia del codi.
# 12) untill () i visibleOfElementLocated ()
untill () de WebdriverWait i visibleOfElementLocated () de ExpectedConditions per esperar explícitament fins que un element sigui visible a la pàgina web.
Tractar casos en què un element triga massa a ser visible a la pàgina web del programari aplicant una espera implícita es fa complicat. En aquest cas, podem escriure un comentari per esperar fins que l’element aparegui a la pàgina web. Aquesta ordre utilitza una combinació del mètode until () de la classe WebdriverWait i el mètode visibleOfElementLocated () de la classe ExpectedConditions.
Sintaxi:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input[@id=’name’]')));
Explicació:
- La primera línia indica el temps d'espera que és de 10 segons.
- La segona condició diu que s’espera una condició esperada. Aquí es tracta d’un element amb id’name ’a l’esmentat xpath.
# 13) untill () i alertIsPresent ()
untill () de WebdriverWait i alertIsPresent () de ExpectedConditions per esperar explícitament fins que aparegui una alerta.
En alguns casos, hem d’esperar les alertes per continuar la prova. En aquest cas, fem servir una ordre que utilitza el mètode until () de la classe WebdriverWait i el mètode alertIsPresent () de la classe ExpectedConditions.
Consulteu l'ordre següent:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Explicació:
- La primera línia indica quant temps d'espera, és a dir, 10 segons.
- La segona condició diu que s’espera una condició esperada. Aquí es mostra una alerta emergent.
# 14) getTitle ()
getTitle () per obtenir el títol de la pàgina al controlador web Selenium.
Sintaxi:
String title = driver.getTitle(); System.out.println(title);
Normalment s’utilitza per imprimir el títol als registres de sortida.
Explicació:
- Obteniu el títol de la pàgina web i emmagatzemeu-lo al títol de l’objecte String.
- Imprimiu el valor emmagatzemat al títol als registres de sortida.
# 15) Seleccioneu
Seleccioneu la classe per seleccionar i anul·lar la selecció de valors del menú desplegable de Selenium WebDriver.
Sovint tenim escenaris relacionats amb el menú desplegable. Per fer-ho, s’utilitzen mètodes de la classe Select. Podem utilitzar selectByVisibleText (), selectByValue () o selectByIndex () segons l’escenari.
Sintaxi:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Explicació:
- Cerca el menú desplegable mitjançant el seu identificador 'select'.
- Seleccioneu el text visible 'Apple' al menú desplegable.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Explicació:
- Cerqueu el menú desplegable amb el seu identificador 'select'.
- Seleccioneu el text amb el valor 'Apple' al menú desplegable.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Explicació:
- Cerqueu el menú desplegable amb el seu identificador 'select'.
- Seleccioneu l'element desplegable amb el valor de l'índex '1' al menú desplegable (segon element).
De manera similar a la selecció, podem anul·lar la selecció de valors del menú desplegable mitjançant ordres similars.
Comproveu les ordres:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Explicació:
- Cerqueu el menú desplegable amb el seu identificador 'select'.
- Desmarqueu el text visible 'Apple' al menú desplegable.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Explicació:
- Cerqueu el menú desplegable amb el seu identificador 'select'.
- Desmarqueu el text amb el valor 'Apple' al menú desplegable.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Explicació:
- Cerqueu el menú desplegable amb el seu identificador 'select'.
- Desmarqueu l'element desplegable amb el valor d'índex '1' del menú desplegable (segon element).
navigate () per navegar entre els URL.
Sovint veiem situacions en què és possible que vulguem navegar des de l’URL de destinació i després tornar enrere o endavant. En aquests casos, en lloc d’utilitzar get (), podem utilitzar navigate (). A Navigate podem utilitzar mètodes back () i forward () sense especificar els URL.
Sintaxi:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Explicació:
- Aneu a https://www.softwaretestinghelp.com
- Navega cap enrere.
- Navega cap endavant.
# 17) getScreenshotAs ()
getScreenshotAs () per capturar la captura de pantalla de tota la pàgina a Selenium WebDriver.
Sovint es requereix aquest per desar els detalls de la vostra feina o, de vegades, per comprovar manualment les sortides. L'ordre següent s'utilitza per fer una captura de pantalla i desar-la en un fitxer de sortida.
Sintaxi:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Explicació:
- Feu una captura de pantalla i deseu el fitxer a la captura d'objectes.
- Deseu el fitxer a la unitat D com a shot1.png.
# 18) moveToElement ()
moveToElement () de la classe Actions per simular l’efecte del cursor del ratolí.
Hi ha escenaris en què hem de passar el cursor per sobre dels elements web, com per sobre del menú, per veure el submenú, enllaços per veure canvis de color, etc. En aquests casos, fem servir la classe Actions. Mireu la sintaxi següent per a la classe Action.
Sintaxi:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div[@id='mainmenu1']/div')); actions.moveToElement(mouseHover); actions.perform();
Explicació
- Cerqueu i localitzeu l'element web amb l'identificador div 'mainmenu1'.
- Moveu el punter del ratolí a l’element.
# 19) dragAndDrop ()
dragAndDrop () de la classe Actions per arrossegar un element i deixar-lo anar sobre un altre element.
En alguns casos, és possible que vulguem arrossegar elements. Per exemple, arrossegueu una imatge a l’escenari. En aquest cas, podem utilitzar la classe Actions.
En el mètode dragAndDrop, passem els dos paràmetres: Source locator, l'element que volem arrossegar i Destination Locator, l'element al qual volem deixar anar.
Sintaxi:
WebElement sourceLocator = driver.findElement(By.xpath('//*[@id='image1']/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*[@id='stage']/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Explicació:
- Cerqueu i localitzeu l'element web d'origen.
- Cerqueu i localitzeu l'element web de destinació.
- Arrossegueu i deixeu anar l'element d'origen a l'element de destinació.
# 20) switchTo () i accept (), dismiss () i sendKeys ()
switchTo () i accept (), dismiss () i sendKeys () mètodes de la classe Alert per canviar a alertes emergents i gestionar-les.
Per canviar a alertes, finestres emergents i gestionar-les, fem servir una combinació de canviar a() i acceptar (), acomiadar () mètodes de la classe Alert.
Sintaxi:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Explicació:
- Canvieu a la finestra d'alerta.
- Escriviu 'This Is Softwaretestinghelp' dins de l'alerta.
- Accepteu l'alerta i tanqueu-la.
alert.dismiss () es pot utilitzar per ignorar l'alerta.
# 21) getWindowHandle () i getWindowHandles ()
getWindowHandle () i getWindowHandles () per gestionar diversos Windows a Selenium WebDriver.
interfície d'usuari de base de dades i programari de consulta
Hi ha molts casos en què les aplicacions web tenen molts marcs o finestres.
Aquests són principalment anuncis o finestres emergents d'informació. Podem gestionar diverses finestres mitjançant Windows Handlers. Webdriver emmagatzema un identificador de finestra únic per a cada finestra. Fem servir aquest identificador per gestionar-los.
Sintaxi:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Les ordres anteriors s’utilitzen per obtenir identificadors de finestra de la finestra actual i de totes les finestres respectivament. Consulteu el bucle següent per veure com podem passar a cada finestra per obtenir el bucle.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Explicació:
- Per a cada identificador de controlador de finestra de driver.getWindowHandles (), canvieu a aquest identificador de finestra.
# 22) getConnection ()
getConnection () des de DriverManager per iniciar la connexió a la base de dades.
Per iniciar una connexió a la base de dades, fem servir getConnection de la classe DriverManager.
Sintaxi:
DriverManager.getConnection(URL, 'username', 'password' )
Explicació:
- Connecteu-vos a la base de dades mitjançant URL i credencials.
# 23) DESPRÉS
PDI per llegir des dels fitxers Excel.
A les proves basades en dades, sovint guardem les entrades al fitxer Excel i les llegim. Per fer-ho a WebDriver, importem el paquet PDI i després fem servir l'ordre següent.
Sintaxi:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Explicació:
- Creeu un fitxer lector.
- Llegiu el fitxer.
# 24) assertEquals (), assertNotEquals (), assertTrue () i assertFalse ()
Afirma mitjançant assertEquals (), assertNotEquals (), assertTrue () i assertFalse () per comparar els resultats.
Les afirmacions s’utilitzen per comparar els resultats esperats i reals. L’aprovació o la suspensió d’una prova se sol decidir a partir del resultat de les afirmacions. En automatització s’utilitzen diferents tipus d’afirmació.
Sintaxi:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Explicació:
- A la primera ordre, sempre que els valors esperats i reals siguin els mateixos, l'afirmació passa sense cap excepció. és a dir, si el missatge és 'Aquest text', l'afirmació passa.
- A la segona ordre, sempre que els valors esperats i reals siguin els mateixos, l'afirmació falla amb una excepció. és a dir, si el missatge és 'Aquest text', l'afirmació falla.
- Al tercer ordre, si la condició passa, l'afirmació passa. és a dir, si resulta<0, then the assertion passes.
- Al quart ordre, si la condició passa, l'afirmació falla. és a dir, si resulta<0, then the assertion fails.
# 25) close () i quit ()
close () i quit () per tancar les finestres i les instàncies del controlador.
Aquestes ordres s'utilitzen al final de cada programa d'automatització.
Sintaxi:
driver.close() driver.quit()
Explicació:
La primera ordre tanca la finestra actual.
La segona ordre surt d'aquesta instància del controlador, tancant totes les finestres associades que s'obren.
Conclusió
En aquest tutorial, hem introduït diverses ordres d'ús habitual i excessiu de WebDriver. Hem intentat explicar les ordres amb exemples i fragments de codi adequats.
He intentat fer tot el possible per explicar les ordres de WebDriver més populars que fem servir habitualment en el nostre dia a dia. Aquestes ordres us permetran treballar fàcilment amb Selenium.
Espero que us fos interessant i coneixedor.
Sou un provador d'automatismes que ha provat alguna de les ordres anteriors? O hem perdut cap ordre que utilitzeu a la llista anterior?
Pròxim tutorial núm. 18 : En el proper tutorial, en parlaríem Taules web, marcs i elements dinàmics que són una part essencial de qualsevol projecte web. També cobrirem el manipulació d’excepcions l’important tema amb més detalls en un dels propers Tutorials de Selenium.
Lectura recomanada
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Introducció a Selenium WebDriver - Tutorial Selenium # 8
- Com executar Selenium WebDriver en diferents navegadors populars
- Implementació del nostre primer script WebDriver - Selenium WebDriver Tutorial # 10
- Preguntes més freqüents sobre el seleni
- Com gestionar les alertes / finestres emergents a Selenium WebDriver - Selenium Tutorial # 16
- Tutorial de GeckoDriver Selenium: Com utilitzar GeckoDriver en projectes de Selenium
- Espera implícita i explícita a Selenium WebDriver (tipus d'espera de seleni)