comprehensive xpath tutorial xml path language
Lär dig allt om XML Path Language (XPath) med exempel. Denna XPath-handledning täcker användningen och typerna av XPath, XPath-operatörer, axlar och applikationer vid testning:
Termen XPath står för XML Path Language. Det är ett frågespråk som används för att välja olika noder i XML-dokumentet.
Eftersom SQL används som frågespråk för olika databaser ( Till exempel, SQL kan användas i databas som MySQL, Oracle, DB2, etc), XPath kan också användas för olika språk och verktyg ( Till exempel, språk som XSLT, XQuery, XLink, XPointer, etc. och verktyg som MarkLogic, Software Testing tools som Selen, etc.)
Vad du kommer att lära dig:
XPath - En översikt
Xpath är i grunden ett språk för navigering genom XML-dokument och när man diskuterar navigering betyder det att man flyttar i ett XML-dokument i vilken riktning som helst, går till något element eller något attribut och textnod. XPath är ett rekommenderat språk i World Wide Web Consortium (W3C).
Var kan vi använda XPath?
XPath kan användas i både mjukvaruutvecklingsindustrin och mjukvarutestningsindustrin.
programutveckling fas livscykel design
Om du befinner dig i Software Testing-domänen kan du använda XPath för att utveckla automatiseringsskript i Selenium, eller om du befinner dig i utvecklingsdomänen har nästan alla programmeringsspråk XPath-stöd.
XSLT används främst i XML Content-konverteringsdomänen och använder XPath för konvertering. XSLT arbetar nära XPath och några andra språk som XQuery och XPointer.
Typer av XPath-nod
Nedan listas de olika typerna av XPath-nod.
# 1) Elementnoder: Det här är noderna som kommer direkt under rotnoden. En elementnod kan innehålla attribut i den. Det representerar en XML-tagg. Som ges i exemplet nedan: Software Tester, State, Country är elementnoder.
# 2) Attributnoder :Detta definierar egenskapen / attributet för elementnoden. Det kan vara under elementnoden såväl som rotnoden. Elementnoder är överordnade till dessa noder. Som ges i exemplet nedan: “namn” är attributnoden för elementnoden (programvarutestaren). Genvägen för att beteckna attributnoder är “@”.
# 3) Textnoder :Alla texter som kommer mellan elementnoden är kända som textnoder som i nedanstående exempel 'Delhi', 'Indien', 'Chennai' är textnoderna.
# 4) Kommentar noder :Detta är något som en testare eller utvecklare skriver för att förklara koden som inte bearbetas av programmeringsspråken. Kommentarer (lite text) kommer mellan dessa inledande och avslutande taggar:
# 5) Namnområden :T ”; 0j89 //// / dessa används för att ta bort tvetydighet mellan mer än en uppsättning XML-elementnamn. Till exempel, i XSLT används standardnamnområdet som (XSL :).
# 6) Bearbetningsinstruktioner :Dessa innehåller instruktioner som kan användas i applikationerna för bearbetning. Förekomsten av dessa bearbetningsinstruktioner kan vara var som helst i dokumentet. Dessa kommer emellan.
# 7) Rotnod :Detta definierar den översta elementnoden som innehåller alla underordnade element i den. Root Node har ingen överordnad nod. I XML-exemplet nedan är rotnoden “SoftwareTestersList”. För att välja rotnoden använder vi snedstreck, dvs. '/'.
hur kan jag spela mkv-filer
Vi kommer att skriva ett grundläggande XML-program för att förklara ovanstående termer.
Delhi India chennai India
Atomvärden : Alla de noder som inte har varken underordnade noder eller föräldernoder kallas atomvärden.
Kontextnod : Detta är en viss nod i XML-dokumentet där uttryck utvärderas. Det kan också betraktas som den aktuella noden och förkortas med en enda period (.).
Kontextstorlek : Detta är antalet barn till föräldern till Context Node. Till exempel, om kontextnoden är en av de fem barnen till sin förälder är kontextstorleken fem.
Absolut Xpath: Detta är XPath-uttrycket i XML-dokumentet som börjar med rotnoden eller med '/', Till exempel, / SoftwareTestersList / softwareTester / @ name = ”T1 ″
Relativ XPath: Om XPath-uttrycket börjar med den valda kontextnoden betraktas det som relativ XPath. Till exempel, om mjukvarutestaren är den valda noden betraktas / @ name = ”T1” som den relativa XPath.
Axlar i XPath
- Självaxel : Välj kontextnod. XPath-uttrycket själv :: * och. är likvärdiga. Detta förkortas med en enda period (.)
- Barnaxel : Välj underordnade kontextnoder. Element, kommentar, textnoder och bearbetningsinstruktioner betraktas som underordnade till Context Node. Namnområdesnoden och attributnoden betraktas inte som underaxeln för innehållsnoden. Till exempel, barn :: programvarutestare.
- Förälderaxel : Välj kontextnodens förälder (om kontextnoden är rotnoden kommer föräldraxeln att leda till en tom nod.) Denna axel förkortas med en dubbel period (..). Uttrycken (parent :: State) och (../State) är ekvivalenta. Om kontextnoden inte har element som överordnad kommer detta XPath-uttryck att resultera i en tom nod.
- Attributaxel : Välj attributet för kontextnoden. Denna attributaxel förkortas med at-sign (@). Om kontextnoden inte är en elementnod kommer detta att leda till en tom nod. Uttrycket (attribut :: namn) och (@name) är ekvivalenta.
- Förfäder axel : Välj överordnad till kontextnoden och dess förälder och så vidare. Denna axel innehåller rotnoden om själva kontextnoden inte är rotnoden.
- Förfader-eller-jag: Välj kontextnoden med dess överordnade, dess överordnade förälder och så vidare och kommer alltid att välja rotnoden.
- Efterkommande axel : Välj alla barn i kontextnoden, deras barns barn och så vidare. Barnen till kontextnoden kan vara element, kommentarer, bearbetningsinstruktioner och textnoder. Namnområdesnod och attributnod beaktas inte under den efterföljande axeln.
- Ättlingar-eller-jag : Välj kontextnoden och alla barn till kontextnoden och alla barn till alla kontextnoden och så vidare. Som i de ovanstående fallelementen beaktas kommentarer, bearbetningsinstruktioner och textnoder och namnområden och attributnoder beaktas inte under kontextnoden.
- Föregående axel : Markera alla noder som kommer före kontextnoden i hela dokumentet som betraktas som föregående axel. Namnutrymme, förfäder och attributnod betraktas inte som föregående axel.
- Före syskon axel : Välj alla föregående syskon till kontextnoden. Alla noder som visas före kontextnoden och som också har samma förälder som i kontextnoden i XML-dokumentet. Föregående syskon resulterar i tomt om kontextnoden är ett namnområde eller är ett attribut.
- Följande axel : Välj alla noder som kommer efter kontextnoden i XML-dokumentet. Namnutrymme, attribut och ättlingar beaktas inte i listan över följande axlar.
- Följande syskon axel : Välj alla följande syskon i kontextnoden. Alla noder som kommer efter kontextnoden och har samma förälder som sammanhangsnoden i XML-dokumentet betraktas som en följande syskonaxel. Detta resulterar i en tom noduppsättning om kontextnoden är namnområde eller attributnod.
- Namnområde : Välj namnområdets noder för kontextnoden. Detta kommer att leda till tomt om kontextnoden inte är en elementnod.
Datatyper i XPath
Nedan följer de olika datatyperna i XPath.
- Siffra: Siffror i XPath representerar ett flytpunktsnummer och implementeras som IEEE 754 flytpunktsnummer. Heltalsdatatyp beaktas inte i XPath.
- Booleska: Detta representerar antingen sant eller falskt.
- Sträng: Detta representerar noll eller fler tecken.
- Noduppsättning: Detta representerar en uppsättning noll eller fler noder.
Jokertecken i XPath
Nedan listas jokertecken i XPath.
- En asterisk (*) : Detta markerar alla elementnoder i kontextnoden. Det kommer att välja textnoder, kommentarer, bearbetningsinstruktioner och attributnod.
- At-sign med en asterisk (@ *) : Detta markerar alla attributnoder för kontextnoden.
- Nod() : Detta markerar alla noder i kontextnoden. Dessa väljer namnområden, text, attribut, element, kommentarer och bearbetningsinstruktioner.
XPath-operatörer
Notera: I tabellen nedan står e för alla XPath-uttryck.
Operatörer | Beskrivning | Exempel |
---|---|---|
e1! = e2 | Inte lika med | @name! = ’T1’ |
e1 + e2 | Tillägg (om e1 och e2 är siffror) | 5 + 2 |
e1 - e2 | Subtraktion (om e1 och e2 är siffror) | 10 - 4 |
e1 * e2 | Multiplikation (om e1 och e2 är siffror) | 3. 4 |
e1 div e2 | Division (om e1 och e2 är siffror och resultatet kommer att vara i flytande värde) | 4 div 2 |
e1 | e2 | sammanslagning av två noder som matchar e1 och matchar e2. | // Stat | //Land |
e1 = e2 | Lika | @name = ’T1’ |
e1Test av e1 är mindre än e2 (mindre än tecken '<’ must be excaped by ‘<’) | test = ”5<9” will result true(). | |
e1> e2 | Test av e1 är större än e2 (större än tecken '>' måste undantas med '>') | test = ”5> 9” leder till falskt (). |
e1<= e2 | Test av e1 är mindre än eller lika med e2. | test = ”5<= 9” will result false(). |
e1> = e2 | Test av e1 är större än eller lika med e2. | test = ”5> = 9” resulterar i falskt (). |
e1 eller e2 | Utvärderad om antingen e1 eller e2 är sanna. | |
e1 och e2 | Utvärderad om både e1 och e2 är sanna. | |
e1 mod e2 | Returnerar återstående flytande punkt av e1 dividerat med e2. | 7 mod 2 |
Predikater i XPath
Predikat används som filter som begränsar de noder som valts av XPath-uttrycket. Varje predikat omvandlas till booleskt värde antingen sant eller falskt, om det är sant för den givna XPath kommer den noden att väljas, om den är falsk kommer inte noden att väljas.
Predikat kommer alltid inom hakparenteser som ().
Till exempel, softwareTester (@ name = ”T2 ″):
Detta väljer det element som har namngivits som ett attribut med värdet T2.
Tillämpningar av XPath i programvarutestning
XPath är mycket användbart vid automatiseringstestning. Även om du gör manuell testning kommer kunskapen om XPaths att vara mycket användbar för att hjälpa dig att förstå vad som händer i applikationens baksida.
hur man öppnar .jar med java
Om du testar automatisering måste du ha hört talas om Appium studio, som är ett av de bästa automatiseringsverktygen för testning av mobilappar. I det här verktyget finns det en mycket kraftfull funktion som heter XPath-funktionen vilket gör att du kan identifiera elementen på en viss sida genom hela automatiseringsskriptet.
Vi skulle vilja citera ett annat exempel här från verktyget som nästan alla programvarutestare känner till, dvs. Selen. Kunskapen om XPath i Selen IDE och Selen WebDriver är en måste-ha skicklighet för testare.
XPath fungerar som en elementlokaliserare. Närhelst du måste hitta ett visst element på en sida och utföra några åtgärder över det måste du nämna dess XPath i målkolumnen i Selenium-skriptet.
Som du kan se i bilden ovan, om du väljer något element på en webbsida och inspekterar det, får du ett alternativ av 'Kopiera XPath'. Som ett exempel togs från Googles sökelement via Chrome-webbläsaren och när XPath kopierades som visas i bilden ovan fick vi värdet nedan:
//*(@id='tsf')/div(2)/div(3)/center/input(1)
Om vi antar att vi behöver utföra en klickåtgärd på den här länken måste vi tillhandahålla ett klickkommando i Selenium-skriptet och målet för klickkommandot är ovanstående XPath. Användningen av XPath är inte bara begränsad till ovanstående två verktyg. Det finns många områden och verktyg för programvarutestning där XPath används.
Vi hoppas att du har en rättvis uppfattning om vikten av XPath inom programvarutestning.
Slutsats
I denna handledning har vi lärt oss om XPath, hur man använder XPath-uttryck, stöd för XPath-uttryck på olika språk och verktyg. Vi lärde oss att XPath kan användas inom alla områden av programvaruutveckling och programvarutestning.
Vi lärde oss också de olika datatyperna av XPath, olika axlar som används i XPath tillsammans med deras användning, nodtyper som används i XPath, olika operatörer och predikat i XPath, skillnaden mellan relativ och absolut XPath, olika jokertecken som används i XPath etc.
Glad läsning!!
Rekommenderad läsning
- En enkel metod för testning av XML till databas
- Ett utmärkt sätt att datatestas med XML-teknik (vitbok)
- Påstående i SOAtest med ett exempel på XML-kod
- QTP-handledning nr 16 - Steg för att infoga XML-, tillgänglighets- och databaskontrollpunkter
- Topp 45 XML-intervjufrågor och svar för 2021 (LATEST)
- Skillnad mellan SQL Vs MySQL Vs SQL Server (med exempel)
- TestNG Exempel: Hur man skapar och använder TestNG.xml-fil
- Ultimate XPath Writing Cheat Sheet Tutorial med syntax och exempel