handling web tables frames
Nell'ultimo tutorial di Selenium WebDriver, abbiamo imparato vari comunemente e ha usato abitualmente i comandi Selenium WebDriver inclusi argomenti importanti come la gestione di iframe ed eccezioni negli script Selenium.
Andando avanti nel nostro completo serie di tutorial sul selenio , in questo tutorial discuteremo di gestione di tabelle Web, iframe ed elementi dinamici che sono una parte essenziale di qualsiasi progetto web.
Questo tutorial è composto da 3 diversi argomenti e dai relativi meccanismi di gestione nello script di selenio.
- Tabelle Web / tabelle HTML
- Cornici
- Elementi dinamici
Cosa imparerai:
# 1) Tabelle Web / Tabelle HTML
In questo modulo impareremo le tabelle web o le tabelle HTML in una pagina web, i tag disponibili in HTML e come gestire le tabelle web dinamicamente.
Le tabelle Web sono fondamentalmente un gruppo di elementi che vengono archiviati logicamente in un formato di riga e colonna. Viene utilizzato per organizzare informazioni simili su una pagina web.
Di seguito è riportato un esempio di tabella Html:
Di seguito è riportato lo snippet della struttura HTML di una tabella HTML:
I tag seguenti sono generalmente definiti nelle tabelle html:
Il tag 1.'table 'definisce la tabella HTML.
2. il tag 'tbody' definisce un contenitore per righe e colonne.
3.'tr 'definisce le righe in una tabella HTML.
4.’td ’/’ th ’definiscono la colonna di una tabella HTML.
Trova i dettagli di una tabella web:
Ci sono molti modi in cui possiamo gestire una tabella web.
implementazione del programma di hashing in c ++
Approccio # 1 :
Di seguito è riportato l'xpath di una delle celle nella tabella html. Diciamo 'nome'
// div (@ id = ’main’) / table (1) / tbody / tr (1) / th (1)
tr (1) definisce la prima riga e th (1) definisce la prima colonna.
Se un numero di righe e colonne è sempre costante, supponiamo che la nostra tabella HTML avrà sempre 5 righe e 3 colonne.
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+”)”))); } }
Ad eccezione del numero di riga e di colonna, ogni componente di XPath rimane lo stesso. Quindi puoi iterare usando 'for loop' per ogni riga e colonna come menzionato sopra.
Approccio n. 2 :
Il primo approccio è più adatto al tavolo che non cambia le sue dimensioni e rimane sempre lo stesso. L'approccio di cui sopra non sarà una soluzione perfetta per cambiare dinamicamente le tabelle web.
Prendiamo come esempio la tabella HTML sopra:
WebElement htmltable=driver.findElement(By.xpath('//*(@id='main')/table(1)/tbody')); List rows=htmltable.findElements(By.tagName('tr')); for(int rnum=0;rnum Passo 1 : Per prima cosa prendi l'intera tabella HTML e memorizzala in una variabile 'htmltable' di tipo web element.
Passo 2 : Ottieni tutte le righe con il nome del tag 'tr' e memorizza tutti gli elementi in un elenco di elementi web. Ora tutti gli elementi con tag 'tr' vengono memorizzati nell'elenco 'righe'.
Passaggio 3 : Fai scorrere ogni riga e ottieni l'elenco degli elementi con tag 'Th'. 'Rows.get (0)' darà la prima riga e 'FindElements (By.tagName ( 'Th' )) ' fornirà un elenco di colonne per la riga.
Passaggio 4 : Iterate using 'Column.getsize ()' e ottieni i dettagli di ogni cella.
Nota : L'approccio precedente sarà più adatto se le dimensioni della tabella cambiano dinamicamente.
Questo conclude l'argomento su come gestire le tabelle web in selenio. Successivamente, impareremo come gestire un elemento all'interno di un frame.
# 2) Cornici
In questa sezione impareremo a conoscere i frame in una pagina web e come identificare i frame. Inoltre, scopriremo come gestire un frame in Selenium WebDriver.
A molti sviluppatori piace posizionare elementi all'interno di una cornice. La cornice è proprio come un contenitore in cui si possono raggruppare pochi elementi.
Identificazione di un telaio:
Diversi modi per sapere se l'elemento è presente all'interno di una cornice oppure no
# 1 . Fare clic con il pulsante destro del mouse sull'elemento. Controlla se l'opzione 'Questa cornice' è disponibile. Se l'opzione Questa cornice è disponibile, significa che l'elemento è all'interno di una cornice.
#Due . Visualizza la sorgente della pagina web e controlla se sono disponibili tag per 'iframe'.
come aprire il file bin in Windows 7

Verifica il numero di frame in una pagina web :
Tutti i frame hanno il nome del tag come 'iframe'.
List frameList = driver.findElements (By.tagName ( 'Iframe' ));
System.out.println (frameList.size ());
Nell'esempio sopra : frameList avrà tutta la lista dei frame e frameList.size () darà il numero di frame.
Manipolazione di un elemento all'interno del telaio:
Se un elemento si trova all'interno di un frame, il controllo deve prima passare al frame e quindi iniziare a operare sugli elementi.
Passo 1 : Per passare all'interno di una cornice:
driver.switchTo (). frame (1); // passa il numero di frame come parametro.
o
driver.switchTo (). frame ('nome frame'); // passa il nome del frame come parametro.
o
driver.switchTo (). frame ('xpath of the frame');
con cosa apri i file jar
Passo 2 : Dopo il passaggio all'interno di una cornice, il selenio sarà in grado di operare sugli elementi.
driver.findElement ( // ****************);
driver.findElement ( // ***********************************************) ;
Qui abbiamo imparato come gestire un elemento all'interno del frame e successivamente tratteremo i diversi modi per gestire l'elemento dinamico.
# 3) Elementi dinamici
In questa sezione impareremo diversi modi per gestire l'elemento dinamico e costruire un Xpath generico.
In alcuni scenari, gli attributi degli elementi cambiano dinamicamente. Può essere 'id', 'name' e così via.
Esempio : supponiamo che 'id' di un campo nome utente sia 'nomeutente_123' e l'XPath lo sarà
// * (@ id = ’username_123 ′) ma quando apri di nuovo la pagina, il campo 'id' del campo 'nome utente' potrebbe essere cambiato e il nuovo valore potrebbe essere 'nomeutente_234'.
In questo caso, il test fallirà perché il selenio non è riuscito a trovare l'XPath passato in precedenza poiché l'id del campo è cambiato in un altro valore.
Esistono molti approcci a seconda del tipo di problema:
Tipo di problema 1: Se parte del valore dell'attributo cambia .
Esempio : Come nell'esempio precedente, il valore id cambia ma pochi campi rimangono costanti.
'Nomeutente_123' è stato modificato in 'nomeutente_234' ma 'nome utente' è sempre rimasto invariato.
Puoi costruire xpath come di seguito:
driver.findElement (By.xpath ( '// * (contiene (@ id,’ nomeutente ’))' )). sendKeys ( 'nome utente' );
conducente . findElement (By.xpath ( '// * (starts-with (@ id,’ user ’))' )). sendKeys ( 'nome utente' );
'Contiene' è un metodo java che controlla se id contiene il nome utente della sottostringa.
inizia con() controlla se un attributo inizia con 'utente'.
Tipo di problema 2: Se l'intero valore dell'attributo cambia dinamicamente.
Anche in questo caso potrebbero esserci approcci diversi:
Per esempio : se l'id del campo 'login' cambia dinamicamente e non vi è alcun valore costante da utilizzare contiene il metodo.
Soluzione : Utilizzo di sendKeys.
Selenium fornisce diverse API per utilizzare i tasti funzione. Ad esempio il tasto Tab, immettere le chiavi, F5 ecc.
Passo 1 : Inserire la password
driver.findElement (By.id ( 'parola d'ordine' )). sendKeys ('password'));
Passo 2 : Utilizza le funzioni dei tasti per navigare all'elemento.
driver.findElement (By.id ( 'parola d'ordine' )) sendKeys (Keys. ACCEDERE ));
o
driver.findElement (By.id ( 'parola d'ordine' )) sendKeys (Keys. TAB ));
Conclusione
Tabelle web, frame ed elementi dinamici sono parte essenziale di qualsiasi progetto web. È sempre desiderabile scrivere codice efficace per gestire le tabelle web e gli elementi dinamici.
Comprendere la costruzione di XPath generico che è molto utile durante la gestione di elementi dinamici. In caso di frame, lo script deve cambiare frame e quindi operare sull'elemento.
Prossimo tutorial n. 19 : Nel prossimo tutorial sul selenio impareremo sui tipi di eccezioni e su come gestire le eccezioni in java negli script Selenium.
Pubblica le tue domande relative a tabelle Web, frame e gestione di elementi dinamici, se ne hai.
Lettura consigliata
- Come individuare gli elementi nei browser Chrome e IE per la creazione di script di selenio - Tutorial sul selenio n. 7
- Uso del selenio Seleziona la classe per gestire gli elementi a discesa su una pagina Web - Esercitazione sul selenio # 13
- Localizzatori di selenio: identificare gli elementi web utilizzando XPath in selenio (esempi)
- Come utilizzare il selettore CSS per identificare gli elementi Web per gli script di selenio - Esercitazione sul selenio n. 6
- Controlla la visibilità degli elementi Web utilizzando vari tipi di comandi WebDriver - Selenium Tutorial # 14
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- Integrazione del selenio con JMeter
- Gestione di iFrame utilizzando il metodo selenium WebDriver switchTo ()