handling web tables frames
A l'últim tutorial de Selenium WebDriver, en vam aprendre diversos de forma habitual utilitza rutinàriament les ordres de Selenium WebDriver inclosos temes importants com el maneig d’iframe i excepcions en scripts Selenium.
Avançant en la nostra àmplia gamma sèrie de tutorials sobre Selenium , en aquest tutorial en parlaríem maneig de taules web, iframe i elements dinàmics que són una part essencial de qualsevol projecte web.
Aquest tutorial consta de 3 temes diferents i els seus mecanismes de maneig en script de seleni.
- Taules web / taules HTML
- Marcs
- Elements dinàmics
Què aprendreu:
# 1) Taules web / Taules HTML
En aquest mòdul, coneixerem les taules web o les taules HTML d’una pàgina web, les etiquetes disponibles en HTML i com gestionar les taules web de forma dinàmica.
Les taules web són bàsicament un grup d’elements que s’emmagatzemen lògicament en format de fila i columna. S'utilitza per organitzar informació similar en una pàgina web.
A continuació es mostra un exemple de taula HTML:
A continuació es mostra el fragment de l’estructura HTML d’una taula HTML:
Les etiquetes següents es defineixen generalment a les taules html:
1.’table ’defineix la taula HTML.
2. l’etiqueta ‘tothom’ defineix un contenidor per a files i columnes.
3.’tr defineix les files d’una taula HTML.
4.’td ’/’ th ’defineix la columna d’una taula HTML.
Cerqueu els detalls d’una taula web:
Hi ha moltes maneres de gestionar una taula web.
sintaxi c vs c ++
Enfocament núm. 1 :
A continuació es mostra el xpath d’una de les cel·les de la taula html. Diguem 'nom'
// div (@ id = ’main’) / taula (1) / tbody / tr (1) / th (1)
tr (1) defineix la primera fila i th (1) defineix la primera columna.
Si un nombre de files i columnes sempre són constants, suposem que la nostra taula HTML sempre tindrà 5 files i 3 columnes.
for(int numberOfRows=1; numberOfRows<=5; numberOfRows++) { for(int numberOfCol=1; numberOfCol <=3; numberOfCol++) { System.out.println(driver.findElement(By.xpath (“//div(@id='main')/table(1)/tbody/tr (“+numberOfRows+”)/th(“+numberOfCol+”)”))); } }
Excepte el número de fila i columna, cada component de XPath continua sent el mateix. Així, podeu iterar fent servir el bucle 'for' per a cada fila i columna tal com s'ha esmentat anteriorment.
Enfocament núm. 2 :
El primer enfocament és el més adequat per a la taula que no canvia les seves dimensions i que continua sent la mateixa. L'enfocament anterior no serà una solució perfecta per canviar dinàmicament les taules web.
Prenem com a exemple la taula HTML superior:
WebElement htmltable=driver.findElement(By.xpath('//*(@id='main')/table(1)/tbody')); List rows=htmltable.findElements(By.tagName('tr')); for(int rnum=0;rnum Pas 1 : Primer obteniu tota la taula HTML i emmagatzemeu-la en una variable 'htmltable' de tipus element web.
Pas 2 : Obteniu totes les files amb el nom de l'etiqueta 'tr' i emmagatzemeu tots els elements en una llista d'elements web. Ara tots els elements amb l'etiqueta 'tr' s'emmagatzemen a la llista de 'files'.
Pas 3 : Passeu per cada fila i obteniu la llista d'elements amb etiqueta 'Th'. 'Files.get (0)' donarà la primera fila i ‘FindElements (By.tagName ( 'Th' )) ' donarà una llista de columnes per a la fila.
Pas 4 : Iterar usant 'Columns.getsize ()' i obtenir els detalls de cada cel·la.
Nota : L'enfocament superior serà el més adequat si les dimensions de la taula canvien dinàmicament.
D’aquesta manera es conclou el tema sobre com manejar les taules web en seleni. A continuació, aprendrem sobre la manipulació d’un element dins d’un marc.
# 2) Marcs
En aquesta secció, aprendrem sobre els marcs d’una pàgina web i sobre com identificar-los. A més, descobrirem com podem gestionar un marc a Selenium WebDriver.
A molts desenvolupadors els agrada col·locar elements dins d’un marc. El marc és com un contenidor on es poden agrupar pocs elements.
Identificació d'un marc:
Diferents maneres de saber si l'element està present dins d'un marc o no
# 1 . Feu clic amb el botó dret a l'element. Comproveu si l'opció 'Aquest marc' està disponible. Si aquesta opció de marc està disponible, vol dir que l'element es troba dins d'un marc.
# 2 . Consulteu la font de la pàgina web i comproveu si hi ha alguna etiqueta disponible per a 'iframe'.
millor lloc per descarregar vídeos de youtube

Verifiqueu el nombre de marcs en una pàgina web :
Tots els marcs tenen el nom de l'etiqueta com a 'iframe'.
Llista frameList = driver.findElements (By.tagName ( 'Iframe' ));
System.out.println (frameList.size ());
A l'exemple anterior : frameList tindrà tota la llista de marcs i frameList.size () donarà el nombre de fotogrames.
Manipulació d'un element dins del marc:
Si un element es troba dins d’un marc, el control ha de canviar primer al marc i després començar a operar amb els elements.
Pas 1 : Per canviar dins d'un marc:
driver.switchTo (). frame (1); // passa el número de fotograma com a paràmetre.
o bé
driver.switchTo (). frame ('Nom del frame'); // passa el nom del marc com a paràmetre.
o bé
driver.switchTo (). frame ('xpath del frame');
Pas 2 : Després de canviar dins d'un marc, el seleni podrà operar sobre elements.
driver.findElement ( //*(@id='username')).sendKeys('username ');
driver.findElement ( //*(@id='pass')).sendKeys('password ');
Aquí hem après a manejar un element dins del marc i, a continuació, tractarem sobre les diferents maneres de manejar un element dinàmic.
# 3) Elements dinàmics
En aquesta secció aprendrem diferents maneres de manejar elements dinàmics i construir Xpath genèric.
En alguns escenaris, els atributs dels elements canvien dinàmicament. Pot ser 'id', 'nom', etc.
Exemple : diguem que 'identificador' d'un camp de nom d'usuari és 'nom_usuari_123' i que serà XPath
// * (@ id = ’nom d’usuari_123 ′) però quan torneu a obrir la pàgina, és possible que el camp 'id' del nom d'usuari hagi canviat i el valor nou sigui 'nom d'usuari_234'.
com obrir un fitxer swf a Windows 7
En aquest cas, la prova fallarà perquè el seleni no ha pogut trobar l'XPath que heu passat anteriorment, ja que l'identificador del camp ha canviat a algun altre valor.
Hi ha molts enfocaments en funció del tipus de problema:
Tipus de problema 1: Si canvia part del valor de l'atribut .
Exemple : Com a l'exemple anterior, el valor de l'identificador canvia, però pocs camps es mantenen constants.
'Nom d'usuari_123' ha canviat a 'nom d'usuari_234', però 'nom d'usuari' sempre s'ha mantingut constant.
Podeu construir xpath de la següent manera:
driver.findElement (By.xpath ( '// * (conté (@ id, 'nom d'usuari')))' )). sendKeys ( 'Nom d'usuari' );
conductor . findElement (By.xpath ( '// * (comença amb (@ id, 'usuari'))' )). sendKeys ( 'Nom d'usuari' );
'Conté' és un mètode Java que comprova si l'ID conté el nom d'usuari de la cadena.
comença per () comprova si algun atribut comença per “usuari”.
Tipus de problema 2: Si el valor complet de l'atribut canvia dinàmicament.
De nou, en aquest cas, hi pot haver diferents enfocaments:
Per exemple : si l'identificador del camp 'inici de sessió' canvia dinàmicament i no hi ha cap valor constant a utilitzar conté el mètode.
Solució : Ús de sendKeys.
Selenium proporciona diferents API per utilitzar tecles de funció. Per exemple, tecla de tabulador, tecles d'introducció, F5, etc.
Pas 1 : Introduir la contrasenya
driver.findElement (By.id ( 'Contrasenya' )). sendKeys ('contrasenya'));
Pas 2 : Utilitzeu funcions de tecles per navegar fins a l'element.
driver.findElement (By.id ( 'Contrasenya' sendKeys (claus. ENTRAR ));
o bé
driver.findElement (By.id ( 'Contrasenya' sendKeys (claus. TAB ));
Conclusió
Les taules web, els marcs i els elements dinàmics són part essencial de qualsevol projecte web. Sempre és desitjable escriure codi eficaç per manejar taules web i elements dinàmics.
Comprensió de la construcció de XPath genèric que és molt útil mentre es manipulen elements dinàmics. En cas de fotograma, el vostre script ha de canviar el fotograma i després operar amb l’element.
Pròxim tutorial núm. 19 : Al proper tutorial de Selenium aprendrem sobre els tipus d'excepcions i com gestionar les excepcions en java als scripts Selenium.
Si us plau, publiqueu les vostres consultes relacionades amb taules web, marcs i manipulació d’elements dinàmics.
Lectura recomanada
- Com localitzar elements als navegadors Chrome i IE per crear scripts Selenium - Tutorial Selenium # 7
- Ús de la classe Selenium Select per a la manipulació d’elements desplegables en una pàgina web - Tutorial Selenium # 13
- Localitzadors de seleni: identificar elements web mitjançant XPath a seleni (exemples)
- Com s'utilitza el selector CSS per identificar elements web per als scripts Selenium - Tutorial Selenium núm. 6
- Comproveu la visibilitat dels elements web mitjançant diversos tipus d’ordres de WebDriver - Tutorial Selenium núm. 14
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Integració de seleni amb JMeter
- Maneig d'iFrames mitjançant el mètode Selenium WebDriver switchTo ()