comprehensive xpath tutorial xml path language
Scopri tutto su XML Path Language (XPath) con esempi. Questo tutorial su XPath copre gli usi ei tipi di XPath, operatori XPath, assi e applicazioni nei test:
Il termine XPath sta per XML Path Language. È un linguaggio di query utilizzato per selezionare vari nodi nel documento XML.
Poiché SQL viene utilizzato come linguaggio di query per diversi database ( Per esempio, SQL può essere utilizzato in database come MySQL, Oracle, DB2, ecc.), XPath può essere utilizzato anche per vari linguaggi e strumenti ( Per esempio, linguaggi come XSLT, XQuery, XLink, XPointer, ecc. e strumenti come MarkLogic, strumenti di test del software come Selenium, ecc.)
Cosa imparerai:
XPath: una panoramica
Xpath è fondamentalmente un linguaggio per la navigazione attraverso documenti XML e mentre si discute di navigazione, significa spostarsi in un documento XML in qualsiasi direzione, andando a qualsiasi elemento o qualsiasi attributo e nodo di testo. XPath è una lingua consigliata dal World Wide Web Consortium (W3C).
Dove possiamo usare XPath?
XPath può essere utilizzato sia nel settore dello sviluppo software che nel settore del test del software.
dove trovo la chiave di sicurezza di rete sul mio router
Se ti trovi nel dominio Software Testing, puoi utilizzare XPath per sviluppare script di automazione in Selenium, oppure se sei nel dominio di sviluppo, quasi tutti i linguaggi di programmazione hanno il supporto XPath.
XSLT viene utilizzato principalmente nel dominio di conversione del contenuto XML e utilizza XPath per la conversione. XSLT lavora a stretto contatto con XPath e alcuni altri linguaggi come XQuery e XPointer.
Tipi di XPath Node
Di seguito sono elencati i vari tipi di XPath Node.
# 1) Nodi elemento: Questi sono i nodi che arrivano direttamente sotto il nodo radice. Un nodo elemento può contenere attributi al suo interno. Rappresenta un tag XML. Come indicato nell'esempio seguente: Software Tester, State, Country sono i nodi dell'elemento.
# 2) Nodi di attributo :Definisce la proprietà / attributo del nodo dell'elemento. Può essere sia sotto il nodo dell'elemento che sotto il nodo radice. I nodi elemento sono i genitori di questi nodi. Come indicato nell'esempio seguente: 'nome' è il nodo dell'attributo del nodo dell'elemento (tester software). La scorciatoia per indicare i nodi degli attributi è '@'.
# 3) Nodi di testo :Tutti i testi che si trovano tra il nodo dell'elemento sono conosciuti come nodo di testo come nell'esempio sotto 'Delhi', 'India', 'Chennai' sono i nodi di testo.
# 4) Nodi di commento :Questo è qualcosa che un tester o uno sviluppatore scrive per spiegare il codice che non viene elaborato dai linguaggi di programmazione. I commenti (del testo) si trovano tra questi tag di apertura e chiusura:
# 5) Spazi dei nomi :T '; 0j89 //// / sono usati per rimuovere l'ambiguità tra più di un insieme di nomi di elementi XML. Per esempio, in XSLT lo spazio dei nomi predefinito viene utilizzato come (XSL :).
# 6) Istruzioni per l'elaborazione :Questi contengono istruzioni che potrebbero essere utilizzate nelle applicazioni per l'elaborazione. La presenza di queste istruzioni di elaborazione potrebbe essere ovunque nel documento. Questi vengono in mezzo.
# 7) Nodo radice :Questo definisce il nodo dell'elemento più in alto che contiene tutti gli elementi figli al suo interno. Il nodo radice non ha un nodo padre. Nell'esempio XML seguente il nodo radice è 'SoftwareTestersList'. Per selezionare il nodo radice, utilizziamo una barra, ad esempio '/'.
software di scheda attività gratuito per piccole imprese
Scriveremo un programma XML di base per spiegare i termini sopra menzionati.
Delhi India chennai India
Valori atomici : Tutti quei nodi che non hanno nodi figlio o nodi padre, sono noti come valori atomici.
Context Node : Questo è un nodo particolare nel documento XML su cui vengono valutate le espressioni. Potrebbe anche essere considerato come il nodo corrente e abbreviato con un unico punto (.).
Dimensione contesto : Questo è il numero di figli del genitore del Context Node. Per esempio, se il Context Node è uno dei quinti figli del suo genitore, allora la Context Size è cinque.
Xpath assoluto: Questa è l'espressione XPath nel documento XML che inizia con il nodo radice o con '/', Per esempio, / SoftwareTestersList / softwareTester / @ name = 'T1 ″
XPath relativo: Se l'espressione XPath inizia con il nodo di contesto selezionato, viene considerato come XPath relativo. Per esempio, se il tester software è il nodo attualmente selezionato, / @ name = 'T1' è considerato come XPath relativo.
Assi in XPath
- Autoasse : Selezionare il nodo contesto. L'espressione XPath self :: * e. sono equivalenti. Questo è abbreviato da un singolo punto (.)
- Asse figlio : Seleziona i figli del nodo contesto. Gli elementi, i commenti, i nodi di testo e le istruzioni di elaborazione sono considerati elementi secondari del Context Node. Il nodo dello spazio dei nomi e il nodo dell'attributo non sono considerati come l'asse figlio del nodo di contenuto. Per esempio, figlio :: tester software.
- Asse padre : Selezionare il genitore del nodo del contesto (se il nodo del contesto è il nodo radice, l'asse genitore risulterà in un nodo vuoto.) Questo asse è abbreviato da un doppio punto (..). Le espressioni (parent :: State) e (../State) sono equivalenti. Se il nodo di contesto non ha un elemento come genitore, questa espressione XPath risulterà in un nodo vuoto.
- Asse degli attributi : Selezionare l'attributo del nodo di contesto. Questo asse dell'attributo è abbreviato dal segno (@). Se il nodo di contesto non è un nodo elemento, questo risulterà in un nodo vuoto. L'espressione (attributo :: nome) e (@name) sono equivalenti.
- Asse degli antenati : Seleziona il genitore del nodo del contesto, il genitore e così via. Questo asse contiene il nodo radice se il nodo di contesto stesso non è il nodo radice.
- Antenato-o-sé: Seleziona il nodo di contesto con il suo genitore, il suo genitore e così via e selezionerà sempre il nodo radice.
- Asse discendente : Seleziona tutti i figli del nodo del contesto, i loro figli e così via. Gli elementi figlio del nodo di contesto possono essere elementi, commenti, istruzioni di elaborazione e nodi di testo. Il nodo dello spazio dei nomi e il nodo dell'attributo non sono considerati sotto l'asse discendente.
- Discendente o sé : Seleziona il nodo del contesto e tutti i figli del nodo del contesto e tutti i figli dei figli di tutto il nodo del contesto e così via. Come nel caso precedente, gli elementi, i commenti, le istruzioni di elaborazione ei nodi di testo vengono considerati e gli spazi dei nomi e i nodi degli attributi non vengono considerati sotto i figli del nodo di contesto.
- Asse precedente : Seleziona tutti i nodi che vengono prima del nodo di contesto nell'intero documento che è considerato come l'asse precedente. Lo spazio dei nomi, gli antenati e il nodo dell'attributo non sono considerati come l'asse precedente.
- Asse fratello precedente : Seleziona tutti i fratelli precedenti del nodo di contesto. Tutti i nodi che appaiono prima del nodo di contesto e hanno anche lo stesso genitore del nodo di contesto nel documento XML. Il fratello precedente risulterà vuoto se il nodo del contesto è uno spazio dei nomi o è un attributo.
- Asse seguente : Seleziona tutti i nodi che vengono dopo il nodo di contesto nel documento XML. Spazio dei nomi, attributo e discendenti non sono considerati nell'elenco degli assi seguenti.
- Asse del fratello successivo : Seleziona tutti i seguenti fratelli del nodo di contesto. Tutti i nodi che vengono dopo il nodo di contesto e hanno anche lo stesso genitore del nodo di contesto nel documento XML sono considerati come un asse fratello successivo. Ciò risulterà in un set di nodi vuoto se il nodo di contesto è uno spazio dei nomi o un nodo di attributi.
- Spazio dei nomi : Selezionare i nodi dello spazio dei nomi del nodo di contesto. Ciò risulterà vuoto se il nodo di contesto non è un nodo elemento.
Tipi di dati in XPath
Di seguito sono riportati i vari tipi di dati in XPath.
- Numero: I numeri in XPath rappresentano un numero a virgola mobile e vengono implementati come numeri a virgola mobile IEEE 754. Il tipo di dati intero non viene considerato in XPath.
- Booleano: Questo rappresenta vero o falso.
- Corda: Questo rappresenta zero o più caratteri.
- Set di nodi: Questo rappresenta un insieme di zero o più nodi.
Caratteri jolly in XPath
Di seguito sono elencati i caratteri jolly in XPath.
- Un asterisco (*) : Questo selezionerà tutti i nodi dell'elemento del nodo del contesto. Selezionerà i nodi di testo, i commenti, le istruzioni di elaborazione e il nodo degli attributi.
- At-sign con un asterisco (@ *) : Questo selezionerà tutti i nodi degli attributi del nodo del contesto.
- Nodo() : Questo selezionerà tutti i nodi del nodo di contesto. Questi selezionano spazi dei nomi, testo, attributi, elementi, commenti e istruzioni di elaborazione.
Operatori XPath
Nota: Nella tabella sottostante, e sta per qualsiasi espressione XPath.
Operatori | Descrizione | Esempio |
---|---|---|
e1! = e2 | Non uguale | @name! = ’T1’ |
e1 + e2 | Addizioni (se e1 ed e2 sono numeri) | 5 + 2 |
e1 - e2 | Sottrazione (se e1 ed e2 sono numeri) | 10 - 4 |
e1 * e2 | Moltiplicazione (se e1 ed e2 sono numeri) | 3. 4 |
e1 div e2 | Divisione (se e1 ed e2 sono numeri e il risultato sarà in virgola mobile) | 4 div 2 |
e1 | e2 | unione di due nodi che corrispondono a e1 e corrispondono a e2. | // Stato | //nazione |
e1 = e2 | È uguale a | @name = ’T1’ |
e1Il test di e1 è minore di e2 (segno minore di '<’ must be excaped by ‘<’) | test = '5<9” will result true(). | |
e1> e2 | Il test di e1 è maggiore di e2 (il segno di maggiore di '>' deve essere sostituito da '>') | test = '5> 9' risulterà falso (). |
e1<= e2 | Il test di e1 è minore o uguale a e2. | test = '5<= 9” will result false(). |
e1> = e2 | Il test di e1 è maggiore o uguale a e2. | test = '5> = 9' risulterà falso (). |
e1 o e2 | Valutato se e1 o e2 sono veri. | |
e1 ed e2 | Valutato se sia e1 che e2 sono veri. | |
e1 mod e2 | Restituisce il resto in virgola mobile di e1 diviso per e2. | 7 mod 2 |
Predicati in XPath
I predicati vengono utilizzati come filtri che limitano i nodi selezionati dall'espressione XPath. Ogni predicato viene convertito in valore booleano vero o falso, se è vero per il dato XPath, quel nodo verrà selezionato, se è falso il nodo non verrà selezionato.
I predicati sono sempre racchiusi tra parentesi quadre come ().
Per esempio, softwareTester (@ name = 'T2 ″):
Questo selezionerà l'elemento che è stato nominato come attributo con il valore di T2.
Applicazioni di XPath nel test del software
XPath è molto utile nei test di automazione. Anche se stai eseguendo test manuali, la conoscenza di XPaths sarà molto utile per aiutarti a capire cosa sta succedendo nel backend dell'applicazione.
come installare un file .jar
Se ti trovi in un test di automazione, devi aver sentito parlare di Appium studio, uno dei migliori strumenti di automazione per il test di app mobili. In questo strumento è presente una funzionalità molto potente chiamata Funzionalità XPath che consente di identificare gli elementi di una pagina specifica in tutto lo script di automazione.
Vorremmo citare un altro esempio qui dallo strumento che quasi tutti i tester di software conoscono, ovvero il selenio. La conoscenza di XPath in Selenium IDE e Selenium WebDriver è un'abilità indispensabile per i tester.
XPath funge da localizzatore di elementi. Ogni volta che ti viene richiesto di individuare un elemento specifico su una pagina ed eseguire un'azione su di esso, devi menzionare il suo XPath nella colonna di destinazione dello script Selenium.
Come puoi vedere nell'immagine sopra, se selezioni un elemento di una pagina web e lo controlli, otterrai un'opzione di 'Copia XPath'. Ad esempio, è stato preso dall'elemento Web di ricerca di Google tramite il browser Web Chrome e quando XPath è stato copiato come mostrato nell'immagine sopra, abbiamo ottenuto il valore seguente:
//*(@id='tsf')/div(2)/div(3)/center/input(1)
Ora, se supponiamo di dover eseguire un'azione di clic su questo collegamento, dovremo fornire un comando di clic nello script Selenium e l'obiettivo del comando di clic sarà XPath sopra. L'utilizzo di XPath non è limitato solo ai due strumenti precedenti. Esistono molte aree e strumenti di test del software in cui viene utilizzato XPath.
Ci auguriamo che abbiate avuto un'idea chiara dell'importanza di XPath nel campo del test del software.
Conclusione
In questo tutorial, abbiamo imparato a conoscere XPath, Come utilizzare l'espressione XPath, Supporto per l'espressione XPath in diversi linguaggi e strumenti. Abbiamo appreso che XPath può essere utilizzato in qualsiasi dominio di sviluppo software e test di software.
Abbiamo anche imparato i diversi tipi di dati di XPath, i diversi assi usati in XPath insieme al loro utilizzo, i tipi di nodi usati in XPath, diversi operatori e predicati in XPath, la differenza tra XPath relativo e assoluto, diversi caratteri jolly usati in XPath ecc.
Buona lettura!!
Lettura consigliata
- Un approccio semplice per XML al test di database
- Un modo eccellente per testare i dati utilizzando le tecnologie XML (white paper)
- Asserzione in SOAtest con un esempio di codice XML
- Esercitazione QTP # 16 - Passaggi per inserire XML, accessibilità e checkpoint del database
- Le 45 principali domande e risposte dell'intervista XML per il 2021 (ULTIME)
- Differenza tra SQL Vs MySQL Vs SQL Server (con esempi)
- Esempio TestNG: come creare e utilizzare il file TestNG.xml
- Ultimate XPath Writing Cheat Sheet Tutorial con sintassi ed esempi