comprehensive xpath tutorial xml path language
Aflați totul despre XML Path Language (XPath) cu exemple. Acest tutorial XPath acoperă utilizările și tipurile XPath, operatorii XPath, axe și aplicații în testare:
Termenul XPath înseamnă XML Path Language. Este un limbaj de interogare utilizat pentru selectarea diferitelor noduri din documentul XML.
Deoarece SQL este utilizat ca limbaj de interogare pentru diferite baze de date ( De exemplu, SQL poate fi utilizat în baze de date precum MySQL, Oracle, DB2 etc.), XPath poate fi folosit și pentru diverse limbaje și instrumente ( De exemplu, limbi precum XSLT, XQuery, XLink, XPointer etc. și instrumente precum MarkLogic, instrumente de testare software precum Selenium etc.)
Ce veți învăța:
XPath - o prezentare generală
Xpath este practic un limbaj pentru navigare prin documente XML și, în timp ce discutați despre navigare, înseamnă deplasarea într-un document XML în orice direcție, accesarea oricărui element sau a oricărui atribut și nod text. XPath este un limbaj recomandat al World Wide Web Consortium (W3C).
Unde putem folosi XPath?
XPath poate fi utilizat atât în industria de dezvoltare software, cât și în industria de testare software.
qa tester intervievează întrebări și răspunsuri
Dacă vă aflați în domeniul Testare software, puteți utiliza XPath pentru dezvoltarea scripturilor de automatizare în Selenium sau dacă vă aflați în domeniul de dezvoltare, aproape toate limbajele de programare au suport XPath.
XSLT este utilizat în principal în domeniul de conversie a conținutului XML și folosește XPath pentru conversie. XSLT funcționează îndeaproape cu XPath și alte limbi precum XQuery și XPointer.
Tipuri de nod XPath
Mai jos sunt enumerate diferitele tipuri de nod XPath.
# 1) Noduri element: Acestea sunt nodurile care intră direct sub nodul rădăcină. Un nod element poate conține atribute în el. Reprezintă o etichetă XML. După cum este prezentat în exemplul de mai jos: Software Tester, State, Country sunt nodurile elementului.
# 2) Noduri de atribute :Aceasta definește proprietatea / atributul nodului elementului. Poate fi sub nodul elementului, precum și nodul rădăcină. Nodurile elementelor sunt părintele acestor noduri. Așa cum este dat în exemplul de mai jos: „nume” este nodul atribut al nodului elementului (tester software). Comanda rapidă pentru a indica nodurile atributului este „@”.
# 3) Noduri de text :Toate textele care intră între nodul elementului sunt cunoscute sub numele de nod text ca în exemplul de mai jos „Delhi”, „India”, „Chennai” sunt nodurile textului.
# 4) Noduri de comentarii :Acest lucru este scris de un tester sau dezvoltator pentru a explica codul care nu este procesat de limbajele de programare. Comentariile (o parte din text) apar între aceste etichete de deschidere și închidere:
# 5) Spații de nume :T ”; 0j89 //// / acestea sunt utilizate pentru a elimina ambiguitatea dintre mai multe seturi de nume de element XML. De exemplu, în XSLT spațiul de nume implicit este utilizat ca (XSL :).
# 6) Instrucțiuni de procesare :Acestea conțin instrucțiuni care ar putea fi utilizate în aplicații pentru procesare. Prezența acestor instrucțiuni de procesare ar putea fi oriunde în document. Acestea intervin între ele.
# 7) Nodul rădăcină :Aceasta definește nodul elementului cel mai de sus care conține toate elementele copil din interiorul acestuia. Nodul rădăcină nu are un nod părinte. În exemplul XML de mai jos, nodul rădăcină este „SoftwareTestersList”. Pentru a selecta nodul rădăcină, folosim slash înainte, adică „/”.
Întrebări de interviuri bazate pe scenariu server SQL
Vom scrie un program XML de bază pentru a explica termenii menționați mai sus.
Delhi India chennai India
Valori atomice : Toate acele noduri care nu au nici noduri copil, nici noduri părinte, sunt cunoscute sub numele de valori atomice.
Nod contextual : Acesta este un nod special din documentul XML pe care sunt evaluate expresiile. Ar putea fi, de asemenea, considerat ca nodul curent și abreviat cu o singură perioadă (.).
Dimensiunea contextului : Acesta este numărul de copii ai părintelui nodului contextual. De exemplu, dacă nodul contextual este unul dintre al cincilea copil al părintelui său, atunci dimensiunea contextului este cinci.
Absolut Xpath: Aceasta este expresia XPath din documentul XML care începe cu nodul rădăcină sau cu „/”, De exemplu, / SoftwareTestersList / softwareTester / @ name = ”T1 ″
XPath relativ: Dacă expresia XPath începe cu nodul context selectat, atunci aceasta este considerată ca XPath relativ. De exemplu, dacă testerul software este nodul selectat în prezent, atunci / @ name = ”T1” este considerat ca XPath relativ.
Axele în XPath
- Axa de sine : Selectați nodul contextual. Expresia XPath auto :: * și. sunt echivalente. Aceasta este abreviată cu o singură perioadă (.)
- Axa copilului : Selectați copiii nodului contextual. Elementele, comentariile, nodurile de text și instrucțiunile de procesare sunt considerate drept un copil al nodului contextual. Nodul spațiului de nume și nodul atribut nu sunt considerate axa copil a nodului conținut. De exemplu, tester copil :: software.
- Axa părinte : Selectați părintele nodului contextual (dacă nodul contextual este nodul rădăcină, atunci axa părinte va rezulta într-un nod gol.) Această axă este abreviată cu o perioadă dublă (..). Expresiile (parent :: State) și (../State) sunt echivalente. Dacă nodul context nu are element ca părinte, atunci această expresie XPath va avea ca rezultat un nod gol.
- Axa atributului : Selectați atributul nodului contextual. Această axă a atributului este abreviată cu semnul la (@). Dacă nodul contextual nu este un nod element, atunci acest lucru va duce la un nod gol. Expresia (atribut :: nume) și (@nume) sunt echivalente.
- Axa strămoșilor : Selectați părintele nodului contextual și părintele părintelui și așa mai departe. Această axă conține nodul rădăcină dacă nodul contextului în sine nu este nodul rădăcină.
- Strămoș sau sine: Selectați nodul contextual cu părintele său, părintele părintelui său și așa mai departe și veți selecta întotdeauna nodul rădăcină.
- Axa descendentă : Selectați toți copiii nodului contextual, copiii copiilor lor și așa mai departe. Copiii nodului contextual ar putea fi elemente, comentarii, instrucțiuni de procesare și noduri text. Nodul spațiului de nume și nodul atributului nu sunt luate în considerare sub axa descendentă.
- Descendent-sau-sine : Selectați nodul contextual și toți copiii nodului contextual și toți copiii copiilor tuturor nodului contextului și așa mai departe. La fel ca în elementele de caz de mai sus, comentariile, instrucțiunile de procesare și nodurile de text sunt luate în considerare, iar spațiile de nume și nodurile de atribute nu sunt luate în considerare sub copiii nodului context.
- Axa precedentă : Selectați toate nodurile care vin înainte de nodul contextual din întregul document, care este considerat axa precedentă. Spațiul de nume, strămoșii și nodul atribut nu sunt considerate axa precedentă.
- Axa precedentă-frate : Selectați toți frații anteriori ai nodului contextual. Toate nodurile care apar înaintea nodului contextual și au, de asemenea, același părinte ca și nodul contextual din documentul XML. Fratele-precedent va rezulta gol dacă nodul context este un spațiu de nume sau este un atribut.
- Urmând axa : Selectați toate nodurile care vin după nodul contextual în documentul XML. Spațiul de nume, atributul și descendenții nu sunt luați în considerare în următoarea listă de axe.
- Axa următoare-frate : Selectați toți frații din nodul contextual. Toate nodurile care vin după nodul contextual și au, de asemenea, același părinte ca nodul contextual din documentul XML sunt considerate axa următoare-frate. Acest lucru va avea ca rezultat un set de noduri goale dacă nodul context este spațiu de nume sau nod de atribut.
- Spațiu de nume : Selectați nodurile spațiului de nume al nodului contextual. Acest lucru va avea ca rezultat gol dacă nodul context nu este un nod element.
Tipuri de date în XPath
Mai jos sunt prezentate diferitele tipuri de date din XPath.
- Număr: Numerele din XPath reprezintă un număr în virgulă mobilă și sunt implementate ca numere IEEE 754 în virgulă mobilă. Tipul de date întreg nu se ia în considerare în XPath.
- Boolean: Aceasta reprezintă fie adevărat, fie fals.
- Şir: Aceasta reprezintă zero sau mai multe caractere.
- Set de noduri: Aceasta reprezintă un set de zero sau mai multe noduri.
Jokeruri în XPath
Mai jos sunt enumerate Wildcard-urile din XPath.
- Un asterisc (*) : Aceasta va selecta toate nodurile de element ale nodului contextual. Va selecta nodurile de text, comentariile, instrucțiunile de procesare și nodul atributelor.
- Semnați la un asterisc (@ *) : Aceasta va selecta toate nodurile de atribut ale nodului contextual.
- Nodul() : Aceasta va selecta toate nodurile nodului contextual. Acestea selectează spații de nume, text, atribute, elemente, comentarii și instrucțiuni de procesare.
Operatori XPath
Notă: În tabelul de mai jos, e reprezintă orice expresie XPath.
Operatori | Descriere | Exemplu |
---|---|---|
e1! = e2 | Nu este egal | @name! = 'T1' |
e1 + e2 | Adaosuri (dacă e1 și e2 sunt numere) | 5 + 2 |
e1 - e2 | Scădere (dacă e1 și e2 sunt numere) | 10 - 4 |
e1 * e2 | Înmulțirea (dacă e1 și e2 sunt numere) | 3. 4 |
e1 div e2 | Diviziunea (dacă e1 și e2 sunt numere și rezultatul va fi în virgulă mobilă) | 4 div 2 |
e1 | e2 | unirea a două noduri care se potrivesc cu e1 și se potrivesc cu e2. | // Stat | //țară |
e1 = e2 | La fel | @name = 'T1' |
e1Testul e1 este mai mic decât e2 (semnul mai mic decât „<’ must be excaped by ‘<’) | test = ”5<9” will result true(). | |
e1> e2 | Testul e1 este mai mare decât e2 (semnul mai mare decât „>” trebuie eliminat de „>”) | test = ”5> 9” va rezulta false (). |
e1<= e2 | Testul lui e1 este mai mic sau egal cu e2. | test = ”5<= 9” will result false(). |
e1> = e2 | Testul lui e1 este mai mare sau egal cu e2. | test = ”5> = 9” va rezulta false (). |
e1 sau e2 | Evaluat dacă e1 sau e2 sunt adevărate. | |
e1 și e2 | Evaluat dacă atât e1 cât și e2 sunt adevărate. | |
e1 mod e2 | Returnează restul în virgulă mobilă al lui e1 împărțit la e2. | 7 mod 2 |
Predicați în XPath
Predicatele sunt utilizate ca filtre care restricționează nodurile selectate de expresia XPath. Fiecare predicat este convertit în valoare booleană fie adevărat, fie fals, dacă este adevărat pentru XPath-ul dat, atunci acel nod va fi selectat, dacă este fals, atunci nodul nu va fi selectat.
Predicatorii apar întotdeauna în paranteze pătrate precum ().
De exemplu, softwareTester (@ name = ”T2 ″):
Aceasta va selecta elementul care a fost numit ca atribut cu valoarea T2.
Aplicații ale XPath în testarea software-ului
XPath este foarte util în testarea automatizării. Chiar dacă efectuați testare manuală, cunoștințele despre XPaths vor fi foarte utile pentru a vă ajuta să înțelegeți ce se întâmplă în backend-ul aplicației.
întrebări și răspunsuri de bază pentru interviul Java
Dacă vă aflați în teste de automatizare, trebuie să fi auzit despre Appium studio, care este unul dintre cele mai bune instrumente de automatizare pentru testarea aplicațiilor mobile. În acest instrument, există o caracteristică foarte puternică numită Caracteristica XPath ceea ce vă permite să identificați elementele unei anumite pagini în întregul script de automatizare.
Am dori să cităm un alt exemplu aici din instrumentul pe care îl știe aproape fiecare tester de software, adică Selenium. Cunoașterea XPath în Selenium IDE și Selenium WebDriver este o abilitate obligatorie pentru testeri.
XPath acționează ca un localizator de elemente. Ori de câte ori vi se cere să localizați un anumit element pe o pagină și să efectuați o acțiune asupra acesteia, trebuie să menționați XPath-ul acesteia în coloana țintă a scriptului Selenium.
După cum puteți vedea în imaginea de mai sus, dacă selectați orice element al unei pagini web și îl inspectați, veți primi opțiunea „Copiați XPath”. Ca exemplu a fost preluat din elementul web de căutare Google prin browserul web Chrome și când XPath a fost copiat așa cum se arată în imaginea de mai sus, am obținut valoarea de mai jos:
//*(@id='tsf')/div(2)/div(3)/center/input(1)
Acum, dacă presupunem că trebuie să efectuăm o acțiune de clic pe acest link, va trebui să furnizăm o comandă de clic în scriptul Selenium, iar ținta comenzii de clic va fi XPath de mai sus. Utilizarea XPath nu se limitează doar la cele două instrumente de mai sus. Există o mulțime de domenii și instrumente de testare software în care este utilizat XPath.
Sperăm că ați avut o idee corectă despre importanța XPath în domeniul testării software-ului.
Concluzie
În acest tutorial, am aflat despre XPath, Cum se utilizează expresia XPath, Suport pentru expresia XPath în diferite limbi și instrumente. Am aflat că XPath poate fi utilizat în orice domeniu de dezvoltare software și testare software.
Am învățat, de asemenea, diferitele tipuri de date ale XPath, diferite axe utilizate în XPath împreună cu utilizarea lor, tipuri de noduri utilizate în XPath, diferiți operatori și predicați în XPath, diferența dintre XPath relativ și absolut, diferite metacaractere utilizate în XPath etc.
Lectura placuta!!
Lectură recomandată
- O abordare simplă pentru testarea XML către baza de date
- Un mod excelent de testare a datelor folosind tehnologiile XML (Cartea albă)
- Afirmație în SOAtest cu un exemplu de cod XML
- QTP Tutorial # 16 - Pași pentru a insera puncte de control XML, accesibilitate și baze de date
- Top 45 de întrebări și răspunsuri la interviu XML pentru 2021 (ULTIMA)
- Diferența dintre SQL și MySQL împotriva SQL Server (cu exemple)
- Exemplu TestNG: Cum să creați și să utilizați fișierul TestNG.xml
- Tutorial Ultimate XPath Writing Sheet cu sintaxă și exemple