comprehensive xpath tutorial xml path language
Lær alt om XML Path Language (XPath) med eksempler. Denne XPath-veiledningen dekker bruken og typene av XPath, XPath-operatører, akser og applikasjoner i testing:
Begrepet XPath står for XML Path Language. Det er et spørrespråk som brukes til å velge forskjellige noder i XML-dokumentet.
Som SQL brukes som spørrespråk for forskjellige databaser ( For eksempel, SQL kan brukes i database som MySQL, Oracle, DB2, etc), XPath kan også brukes til forskjellige språk og verktøy ( For eksempel, språk som XSLT, XQuery, XLink, XPointer, etc. og verktøy som MarkLogic, Software Testing verktøy som Selen, etc.)
Hva du vil lære:
XPath - En oversikt
Xpath er i utgangspunktet et språk for navigering gjennom XML-dokumenter, og mens du diskuterer navigasjon, betyr det å flytte i et XML-dokument i hvilken som helst retning, gå til et hvilket som helst element eller et hvilket som helst attributt og en tekstnode. XPath er et anbefalt språk i World Wide Web Consortium (W3C).
Hvor kan vi bruke XPath?
XPath kan brukes i både programvareutviklingsindustrien og programvaretestindustrien.
c ++ binært treeksempel
Hvis du er i Software Testing-domenet, kan du bruke XPath til å utvikle automatiseringsskripter i Selen, eller hvis du er i utviklingsdomenet, så har nesten alle programmeringsspråkene XPath-støtte.
XSLT brukes overveiende i XML Content Conversion Domain og bruker XPath for konvertering. XSLT jobber tett med XPath og noen andre språk som XQuery og XPointer.
Typer XPath-node
Nedenfor er de forskjellige typene XPath Node.
# 1) Elementnoder: Dette er nodene som kommer rett under rotnoden. En elementnode kan inneholde attributter i den. Den representerer en XML-tag. Som gitt i eksemplet nedenfor: Software Tester, State, Country er elementnodene.
# 2) Attributtnoder :Dette definerer egenskapen / attributtet til elementnoden. Det kan være under elementnoden så vel som rotnoden. Elementnoder er overordnet til disse nodene. Som gitt i eksemplet nedenfor: “navn” er attributtnoden til elementnoden (programvaretester). Snarveien for å betegne attributtnoder er “@”.
# 3) Tekstnoder :Alle tekstene som kommer inn mellom elementnoden er kjent som tekstnoden som i eksemplet nedenfor “Delhi”, “India”, “Chennai” er tekstnodene.
# 4) Kommentar noder :Dette er noe som en tester eller utvikler skriver for å forklare koden som ikke behandles av programmeringsspråkene. Kommentarer (litt tekst) kommer inn mellom disse innledende og avsluttende kodene:
# 5) Navnerom :T ”; 0j89 //// / disse brukes til å fjerne uklarhet mellom mer enn ett sett med XML-elementnavnene. For eksempel, i XSLT brukes standard navneområdet som (XSL :).
# 6) Behandlingsinstruksjoner :Disse inneholder instruksjoner som kan brukes i applikasjonene for behandling. Tilstedeværelsen av disse behandlingsinstruksjonene kan være hvor som helst i dokumentet. Disse kommer imellom.
# 7) Rotknutepunkt :Dette definerer den øverste elementnoden som inneholder alle underordnede elementer i den. Root Node har ikke en foreldrenode. I XML-eksemplet nedenfor er rotnoden “SoftwareTestersList”. For å velge rotnoden bruker vi skråstrek, dvs. ’/’.
hva kan jeg åpne en eps-fil med
Vi vil skrive et grunnleggende XML-program for å forklare de ovennevnte begrepene.
Delhi India chennai India
Atomiske verdier : Alle de nodene som ikke har underordnede noder eller foreldrenoder, er kjent som atomverdier.
Kontekstnode : Dette er en bestemt node i XML-dokumentet som uttrykk blir evaluert på. Det kan også betraktes som den nåværende noden og forkortes med en enkelt periode (.).
Kontekststørrelse : Dette er antall barn til foreldrene til Context Node. For eksempel, Hvis kontekstknutepunktet er et av de femte barna til foreldrene, er kontekststørrelsen fem.
Absolutt Xpath: Dette er XPath-uttrykket i XML-dokumentet som starter med rotnoden eller med ‘/’, For eksempel, / SoftwareTestersList / softwareTester / @ name = ”T1 ″
Relativ XPath: Hvis XPath-uttrykket starter med den valgte kontekstnoden, regnes det som relativ XPath. For eksempel, Hvis programvaretesteren er den valgte noden, betraktes / @ name = ”T1” som den relative XPath.
Akser i XPath
- Selvakse : Velg kontekstnode. XPath-uttrykket selv :: * og. er likeverdige. Dette forkortes med en enkelt periode (.)
- Barneakse : Velg barna til kontekstnoden. Elementer, kommentarer, tekstnoder og behandlingsinstruksjon blir betraktet som et barn av Context Node. Navneplassnode og attributtnoden blir ikke betraktet som underaksen til innholdsnoden. For eksempel, barn :: programvaretester.
- Foreldreakse : Velg overordnet til kontekstnoden (hvis kontekstnoden er rotnoden, vil foreldreaksen resultere i en tom node.) Denne aksen forkortes med en dobbel periode (..). Uttrykkene (foreldre :: Stat) og (../State) er ekvivalente. Hvis kontekstnoden ikke har element som overordnet, vil dette XPath-uttrykket resultere i en tom node.
- Attributtakse : Velg attributtet til kontekstnoden. Denne attributtaksen forkortes med at-sign (@). Hvis kontekstnoden ikke er en elementnode, vil dette resultere i en tom node. Uttrykket (attributt :: navn) og (@navn) er ekvivalente.
- Forfedre akse : Velg overordnet til kontekstnoden og foreldrenes foreldre og så videre. Denne aksen inneholder rotnoden hvis selve kontekstnoden ikke er rotnoden.
- Forfader-eller-selv: Velg kontekstnoden med sin overordnede, foreldrenes foreldre og så videre, og vil alltid velge rotnoden.
- Etterkommende akse : Velg alle barna til kontekstnoden, barnas barn og så videre. Barna til kontekstnoden kan være elementer, kommentarer, behandlingsinstruksjoner og tekstnoder. Navneplassnode og attributtnode blir ikke vurdert under den etterfølgende aksen.
- Etterkommer-eller-selv : Velg kontekstnoden og alle barna til kontekstnoden og alle barna til barna til hele kontekstnoden og så videre. Som i de ovennevnte tilfelleelementene, blir kommentarer, behandlingsinstruksjoner og tekstnoder vurdert, og navneplasser og attributtnoder blir ikke vurdert under barna til kontekstnoden.
- Forrige akse : Velg alle nodene som kommer før kontekstnoden i hele dokumentet som regnes som den foregående aksen. Navneområde, forfedre og attributtnode anses ikke som den foregående aksen.
- Tidligere søskenakse : Velg alle foregående søsken til kontekstnoden. Alle noder som vises før kontekstnoden og som også har samme overordnede som kontekstnoden i XML-dokumentet. Den foregående søsken vil resultere i tom hvis kontekstnoden er et navneområde eller er et attributt.
- Følgende akse : Velg alle noder som kommer etter kontekstnoden i XML-dokumentet. Navneområde, attributt og etterkommere blir ikke vurdert i denne følgende akselisten.
- Følgende søskenakse : Velg alle følgende søsken til kontekstnoden. Alle noder som kommer etter kontekstnoden og som også har samme overordnede som kontekstnoden i XML-dokumentet, blir ansett som en følgende søskenakse. Dette vil resultere i et tomt nodesett hvis kontekstnoden er navneområde eller attributtnode.
- Navneområde : Velg navneområdekodene til kontekstnoden. Dette vil resultere i tomt hvis kontekstnoden ikke er en elementnode.
Datatyper i XPath
Nedenfor er de forskjellige datatypene i XPath.
- Nummer: Tall i XPath representerer et flytende nummer, og implementeres som IEEE 754 flytende nummer. Heltall datatype vurderes ikke i XPath.
- Boolsk: Dette representerer enten sant eller usant.
- Streng: Dette representerer null eller flere tegn.
- Nodesett: Dette representerer et sett med null eller flere noder.
Jokertegn I XPath
Nedenfor vises jokertegnene i XPath.
- En stjerne (*) : Dette vil velge alle elementnodene til kontekstnoden. Det vil velge tekstnoder, kommentarer, behandlingsinstruksjoner og attributtnode.
- At-sign med en stjerne (@ *) : Dette vil velge alle attributtnodene til kontekstnoden.
- Node () : Dette vil velge alle nodene til kontekstnoden. Disse velger navneområder, tekst, attributter, elementer, kommentarer og behandlingsinstruksjoner.
XPath-operatører
Merk: I tabellen nedenfor står e for ethvert XPath-uttrykk.
Operatører | Beskrivelse | Eksempel |
---|---|---|
e1! = e2 | Ikke lik | @name! = ’T1’ |
e1 + e2 | Tillegg (hvis e1 og e2 er tall) | 5 + 2 |
e1 - e2 | Subtraksjon (hvis e1 og e2 er tall) | 10 - 4 |
e1 * e2 | Multiplikasjon (hvis e1 og e2 er tall) | 3. 4 |
e1 div e2 | Divisjon (hvis e1 og e2 er tall og resultatet vil være i flytende punktverdi) | 4 div 2 |
e1 | e2 | forening av to noder som samsvarer med e1 og matcher e2. | // Stat | //land |
e1 = e2 | Er lik | @name = ’T1’ |
e1Test av e1 er mindre enn e2 (mindre enn tegn ‘<’ must be excaped by ‘<’) | test = ”5<9” will result true(). | |
e1> e2 | Test av e1 er større enn e2 (større enn tegn '>' må unntas av '>') | test = ”5> 9” vil føre til falsk (). |
e1<= e2 | Test av e1 er mindre enn eller lik e2. | test = ”5<= 9” will result false(). |
e1> = e2 | Test av e1 er større enn eller lik e2. | test = ”5> = 9” vil føre til false (). |
e1 eller e2 | Evalueres om enten e1 eller e2 er sanne. | |
e1 og e2 | Evalueres hvis både e1 og e2 er sanne. | |
e1 mod e2 | Returnerer restpunkt med flytende punkt av e1 delt på e2. | 7 mod 2 |
Predikater i XPath
Predikater brukes som filtre som begrenser nodene valgt av XPath-uttrykket. Hvert predikat blir konvertert til boolsk verdi enten sant eller usant. Hvis det er sant for den gitte XPath, blir den noden valgt, hvis den er usann, blir ikke noden valgt.
Predikater kommer alltid i hakeparenteser som ().
For eksempel, softwareTester (@ name = ”T2 ″):
Dette vil velge elementet som er navngitt som attributt med verdien T2.
Anvendelser av XPath i programvaretesting
XPath er veldig nyttig i automatiseringstesting. Selv om du gjør manuell testing, vil kunnskapen om XPaths være veldig nyttig for å hjelpe deg med å forstå hva som skjer bak i applikasjonen.
feilhåndteringsprosess i programvaretesting
Hvis du er i automatiseringstesting, må du ha hørt om Appium studio som er et av de beste automatiseringsverktøyene for testing av mobilapper. I dette verktøyet er det en veldig kraftig funksjon som kalles XPath-funksjonen som lar deg identifisere elementene til en bestemt side gjennom automatiseringsskriptet.
Vi vil gjerne sitere et annet eksempel her fra verktøyet som nesten alle programvaretestere kjenner, dvs. Selen. Kunnskapen om XPath i Selen IDE og Selen WebDriver er en må-ha ferdighet for testere.
XPath fungerer som en elementlokator. Hver gang du blir bedt om å finne et bestemt element på en side og utføre noen handlinger over det, må du nevne XPath i målkolonnen i Selenium-skriptet.
Som du kan se i bildet ovenfor, hvis du velger et element på en webside og inspiserer det, vil du få et alternativ av ‘Kopier XPath’. Som et eksempel ble hentet fra Googles søkeelement gjennom Chrome-nettleseren, og da XPath ble kopiert som vist i bildet ovenfor, fikk vi verdien nedenfor:
//*(@id='tsf')/div(2)/div(3)/center/input(1)
Nå, hvis vi antar at vi må utføre en klikkhandling på denne lenken, må vi gi en klikkommando i Selenium-skriptet, og målet for klikk-kommandoen vil være ovennevnte XPath. Bruken av XPath er ikke bare begrenset til de to ovennevnte verktøyene. Det er mange områder og verktøy for programvaretesting der XPath brukes.
Vi håper at du har en god ide om viktigheten av XPath innen programvaretesting.
Konklusjon
I denne veiledningen har vi lært om XPath, Hvordan bruke XPath-uttrykk, Støtte for XPath-uttrykk på forskjellige språk og verktøy. Vi lærte at XPath kan brukes i alle områder av programvareutvikling og programvaretesting.
Vi lærte også de forskjellige datatypene til XPath, forskjellige akser som ble brukt i XPath sammen med deres bruk, nodetyper brukt i XPath, forskjellige operatører og predikater i XPath, forskjellen mellom relativ og absolutt XPath, forskjellige jokertegn som ble brukt i XPath etc.
Glad lesning !!
Anbefalt lesing
- En enkel tilnærming for XML til databasetesting
- En utmerket måte å datateste ved hjelp av XML-teknologier (White Paper)
- Påstand i SOAtest med et XML-kodeeksempel
- QTP opplæring nr. 16 - trinn for å sette inn XML-, tilgjengelighets- og databasekontrollpunkter
- Topp 45 spørsmål og svar på XML-intervju for 2021 (SISTE)
- Forskjellen mellom SQL Vs MySQL Vs SQL Server (med eksempler)
- TestNG Eksempel: Hvordan lage og bruke TestNG.xml-fil
- Ultimate XPath Writing Cheat Sheet Tutorial med syntaks og eksempler