comprehensive xpath tutorial xml path language
Lær alt om XML Path Language (XPath) med eksempler. Denne XPath-vejledning dækker anvendelser og typer af XPath, XPath-operatører, akser og applikationer i test:
Udtrykket XPath står for XML Path Language. Det er et forespørgselssprog, der bruges til at vælge forskellige noder i XML-dokumentet.
Da SQL bruges som forespørgselssprog til forskellige databaser ( For eksempel, SQL kan bruges i database som MySQL, Oracle, DB2 osv., XPath kan også bruges til forskellige sprog og værktøjer ( For eksempel, sprog som XSLT, XQuery, XLink, XPointer osv. og værktøjer som MarkLogic, Software Testing-værktøjer som Selen osv.)
Hvad du lærer:
XPath - En oversigt
Xpath er dybest set et sprog til navigation gennem XML-dokumenter, og mens man diskuterer navigation, betyder det at flytte i et XML-dokument i enhver retning, gå til ethvert element eller ethvert attribut og tekstnode. XPath er et anbefalet sprog i World Wide Web Consortium (W3C).
Hvor kan vi bruge XPath?
XPath kan bruges i både softwareudviklingsindustrien og softwaretestindustrien.
dobbeltkoblet liste i c ++ kildekode
Hvis du er i softwaretest-domænet, kan du bruge XPath til at udvikle automatiseringsscript i Selenium, eller hvis du er i udviklingsdomænet, så har næsten alle programmeringssprog XPath-understøttelse.
XSLT bruges overvejende i XML Content-konverteringsdomænet og bruger XPath til konvertering. XSLT arbejder tæt sammen med XPath og nogle andre sprog som XQuery og XPointer.
Typer af XPath-knude
Nedenfor er de forskellige typer XPath-noder.
# 1) Elementknudepunkter: Dette er de noder, der kommer direkte under rodnoden. Et elementknudepunkt kan indeholde attributter i det. Det repræsenterer et XML-tag. Som angivet i nedenstående eksempel: Software Tester, State, Country er elementknudepunkterne.
# 2) Attributnoder :Dette definerer egenskaben / attributten for elementknudepunktet. Det kan være under elementknudepunktet såvel som rodknudepunktet. Elementknudepunkter er overordnet til disse knudepunkter. Som angivet i nedenstående eksempel: “navn” er attributknudepunktet for elementknudepunktet (softwaretester). Genvejen til at betegne attributknudepunkter er “@”.
# 3) Tekstknudepunkter :Alle de tekster, der kommer ind mellem elementknudepunktet, er kendt som tekstknudepunkt som i nedenstående eksempel “Delhi”, “Indien”, “Chennai” er tekstknudepunkter.
# 4) Kommentar noder :Dette er noget, som en tester eller udvikler skriver for at forklare koden, som ikke behandles af programmeringssprogene. Kommentarer (noget tekst) kommer ind mellem disse indledende og afsluttende tags:
# 5) Navneområder :T ”; 0j89 //// / disse bruges til at fjerne tvetydighed mellem mere end et sæt af XML-elementnavne. For eksempel, i XSLT bruges standardnavneområdet som (XSL :).
# 6) Behandlingsinstruktioner :Disse indeholder instruktioner, der kan bruges i applikationerne til behandling. Tilstedeværelsen af disse behandlingsinstruktioner kan være hvor som helst i dokumentet. Disse kommer imellem.
# 7) rodknude :Dette definerer den øverste elementknude, der indeholder alle underordnede elementer inde i den. Root Node har ikke en overordnet node. I nedenstående XML-eksempel er rodnoden “SoftwareTestersList”. For at vælge rodknudepunktet bruger vi skråstreg, dvs. '/'.
hvordan skriver man testcases?
Vi skriver et grundlæggende XML-program for at forklare de ovennævnte termer.
Delhi India chennai India
Atomiske værdier : Alle de noder, der hverken har underordnede noder eller overordnede noder, er kendt som atomværdier.
Kontekstknude : Dette er en bestemt node i XML-dokumentet, hvor udtryk evalueres. Det kan også betragtes som den aktuelle node og forkortes med en enkelt periode (.).
Kontekststørrelse : Dette er antallet af børn til forældren til kontekstknuden. For eksempel, hvis kontekstknuden er et af forældrenes femte børn, er kontekststørrelsen fem.
Absolut Xpath: Dette er XPath-udtrykket i XML-dokumentet, der starter med rodnoden eller med '/', For eksempel, / SoftwareTestersList / softwareTester / @ name = ”T1 ″
Relativ XPath: Hvis XPath-udtrykket starter med den valgte kontekstknude, betragtes det som relativ XPath. For eksempel, hvis softwaretesteren er den aktuelt valgte node, betragtes / @ name = ”T1” som den relative XPath.
Akser i XPath
- Selvakse : Vælg kontekstknude. XPath-udtrykket selv :: * og. er ækvivalente. Dette forkortes med en enkelt periode (.)
- Barn akse : Vælg børnene til kontekstnoden. Elementer, kommentarer, tekstnoder og behandlingsinstruktioner betragtes som et barn i kontekstnoden. Navneområdeknude og attributknudepunkt betragtes ikke som underaksen for indholdsknudepunktet. For eksempel, barn :: softwaretester.
- Overordnet akse : Vælg den overordnede til kontekstknudepunktet (hvis kontekstknudepunktet er rodknudepunktet, vil moderaksen resultere i en tom knude.) Denne akse forkortes med en dobbelt periode (..). Udtrykkene (overordnet :: stat) og (../stat) er ækvivalente. Hvis kontekstnoden ikke har element som overordnet, vil dette XPath-udtryk resultere i en tom node.
- Attributakse : Vælg attributten for kontekstnoden. Denne attributakse forkortes med at-tegnet (@). Hvis kontekstnoden ikke er en elementnode, vil dette resultere i en tom node. Udtrykket (attribut :: navn) og (@navn) er ækvivalente.
- Forfædre akse : Vælg forælder til kontekstknudepunktet, og det er forælderens forælder og så videre. Denne akse indeholder rodnoden, hvis selve kontekstnoden ikke er rodnoden.
- Forfader-eller-selv: Vælg kontekstnoden med dens overordnede, dens overordnede og så videre, og vælg altid rodnoden.
- Efterkommende akse : Vælg alle børnene i kontekstknudepunktet, deres børns børn og så videre. Børnene til kontekstnoden kunne være elementer, kommentarer, behandlingsinstruktioner og tekstnoder. Navneområdeknudepunkt og attributknudepunkt betragtes ikke under den efterfølgende akse.
- Efterkommer-eller-selv : Vælg kontekstknudepunktet og alle børnene til kontekstknudepunktet og alle børnene til børnene til hele kontekstknudepunktet og så videre. Som i ovenstående tilfælde overvejes kommentarer, behandlingsinstruktioner og tekstnoder, og navneområder og attributnoder betragtes ikke under børnene til kontekstnoden.
- Forudgående akse : Vælg alle de noder, der kommer før kontekstnoden i hele dokumentet, der betragtes som den foregående akse. Navneområde, forfædre og attributknude betragtes ikke som den foregående akse.
- Forudgående søskende akse : Vælg alle foregående søskende til kontekstnoden. Alle noder, der vises før kontekstknudepunktet, og som også har samme overordnede som kontekstknudepunktet i XML-dokumentet. Det foregående søskende vil resultere i tomt, hvis kontekstknudepunktet er et navneområde eller er en attribut.
- Efterfølgende akse : Vælg alle noder, der kommer efter kontekstnoden i XML-dokumentet. Navneområde, attribut og efterkommere betragtes ikke i denne nedenstående akseliste.
- Efterfølgende søskende akse : Vælg alle følgende søskende i kontekstnoden. Alle noder, der kommer efter kontekstnoden og også har den samme forælder som kontekstnoden i XML-dokumentet, betragtes som en efterfølgende søskendeakse. Dette vil resultere i et tomt nodesæt, hvis kontekstnoden er navneområde eller attributnode.
- Navneområde : Vælg navneområdeknudepunkter for kontekstnoden. Dette vil resultere i tomt, hvis kontekstknudepunktet ikke er en elementknudepunkt.
Datatyper i XPath
Nedenfor er de forskellige datatyper i XPath.
- Nummer: Numre i XPath repræsenterer et flydende nummer og implementeres som IEEE 754 flydende nummer. Heltalsdatatype tages ikke i betragtning i XPath.
- Boolsk: Dette repræsenterer enten sandt eller falsk.
- Snor: Dette repræsenterer nul eller flere tegn.
- Nodesæt: Dette repræsenterer et sæt på nul eller flere noder.
Jokertegn i XPath
Nedenfor vises Wildcards i XPath.
- En stjerne (*) : Dette markerer alle elementknudepunkterne i kontekstknudepunktet. Det vælger tekstknudepunkter, kommentarer, behandlingsinstruktioner og attributknudepunkt.
- At-sign med en stjerne (@ *) : Dette markerer alle attributknudepunkterne for kontekstnoden.
- Node () : Dette vælger alle noder i kontekstnoden. Disse vælger navneområder, tekst, attributter, elementer, kommentarer og behandlingsinstruktioner.
XPath-operatører
Bemærk: I nedenstående tabel står e for ethvert XPath-udtryk.
Operatører | Beskrivelse | Eksempel |
---|---|---|
e1! = e2 | Ikke lige | @navn! = 'T1' |
e1 + e2 | Tilføjelser (hvis e1 og e2 er tal) | 5 + 2 |
e1 - e2 | Subtraktion (hvis e1 og e2 er tal) | 10 - 4 |
e1 * e2 | Multiplikation (hvis e1 og e2 er tal) | 3. 4 |
e1 div e2 | Opdeling (hvis e1 og e2 er tal, og resultatet vil være i flydende punktværdi) | 4 div 2 |
e1 | e2 | forening af to noder, der matcher e1 og matcher e2. | // Stat | //Land |
e1 = e2 | Lige med | @name = 'T1' |
e1Test af e1 er mindre end e2 (mindre end tegn '<’ must be excaped by ‘<’) | test = ”5<9” will result true(). | |
e1> e2 | Test af e1 er større end e2 (større end tegn '>' skal undtages med '>') | test = ”5> 9” vil resultere i falsk (). |
e1<= e2 | Test af e1 er mindre end eller lig med e2. | test = ”5<= 9” will result false(). |
e1> = e2 | Test af e1 er større end eller lig med e2. | test = ”5> = 9” vil resultere i falsk (). |
e1 eller e2 | Evalueret, om enten e1 eller e2 er sandt. | |
e1 og e2 | Evalueret, hvis både e1 og e2 er sandt. | |
e1 mod e2 | Returnerer flydende punkt resten af e1 divideret med e2. | 7 mod 2 |
Predikater i XPath
Predikater bruges som filtre, der begrænser de noder, der er valgt af XPath-udtrykket. Hvert predikat konverteres til boolsk værdi enten sandt eller falsk, hvis det er sandt for den givne XPath, bliver den node valgt, hvis den er falsk, vælges noden ikke.
Prædikater kommer altid inden for firkantede parenteser som ().
For eksempel, softwareTester (@ name = ”T2 ″):
Dette vælger det element, der er navngivet som en attribut med værdien af T2.
Anvendelser af XPath i softwaretest
XPath er meget nyttigt i automatiseringstest. Selvom du laver manuel test, vil viden om XPaths være meget nyttigt for at hjælpe dig med at forstå, hvad der sker i backend af applikationen.
interviewspørgsmål om agil scrummetodologi
Hvis du er i automatiseringstest, skal du have hørt om Appium studio, som er et af de bedste automatiseringsværktøjer til test af mobile apps. I dette værktøj er der en meget kraftig funktion kaldet XPath-funktion som giver dig mulighed for at identificere elementerne på en bestemt side i hele automatiseringsscriptet.
Vi vil gerne citere et andet eksempel her fra værktøjet, som næsten alle softwaretestere kender, dvs. selen. Viden om XPath i Selen IDE og Selen WebDriver er en must-have færdighed for testere.
XPath fungerer som en elementlokator. Når du skal lokalisere et bestemt element på en side og udføre en handling over det, skal du nævne dets XPath i målkolonnen i Selenium-scriptet.
Som du kan se i ovenstående billede, hvis du vælger et element på en webside og inspicerer det, får du en mulighed for 'Kopiér XPath'. Som et eksempel blev taget fra Googles søgeelement gennem Chrome-webbrowseren, og da XPath blev kopieret som vist i ovenstående billede, fik vi nedenstående værdi:
//*(@id='tsf')/div(2)/div(3)/center/input(1)
Hvis vi antager, at vi skal udføre en klikhandling på dette link, bliver vi nødt til at give en klikkommando i Selenium-scriptet, og målet for klikkommandoen er ovenstående XPath. Brug af XPath er ikke kun begrænset til ovenstående to værktøjer. Der er mange områder og værktøjer til softwaretest, hvor XPath bruges.
Vi håber, at du fik en god idé om vigtigheden af XPath inden for softwaretest.
Konklusion
I denne vejledning har vi lært om XPath, hvordan man bruger XPath-udtryk, support til XPath-udtryk på forskellige sprog og værktøjer. Vi lærte, at XPath kan bruges i ethvert domæne inden for softwareudvikling og softwaretest.
Vi lærte også de forskellige datatyper af XPath, forskellige akser, der blev brugt i XPath sammen med deres anvendelse, nodetyper, der blev brugt i XPath, forskellige operatører og predikater i XPath, forskellen mellem relativ og absolut XPath, forskellige wildcards, der blev brugt i XPath osv.
God læselyst!!
Anbefalet læsning
- En enkel tilgang til XML til databasetest
- En fremragende måde at datatest på ved hjælp af XML-teknologier (hvidbog)
- Påstand i SOAtest med et XML-kodeeksempel
- QTP-vejledning nr. 16 - Trin til indsættelse af XML-, tilgængeligheds- og databasekontrolpunkter
- Top 45 XML-spørgsmål og svar til 2021 (LATEST)
- Forskellen mellem SQL Vs MySQL Vs SQL Server (med eksempler)
- TestNG Eksempel: Sådan oprettes og bruges TestNG.xml-fil
- Ultimate XPath Writing Cheat Sheet Tutorial med syntaks og eksempler