comprehensive xpath tutorial xml path language
Leer alles over XML Path Language (XPath) met voorbeelden. Deze XPath-zelfstudie behandelt het gebruik en de typen XPath, XPath-operators, assen en toepassingen bij het testen:
De term XPath staat voor XML Path Language. Het is een querytaal die wordt gebruikt voor het selecteren van verschillende knooppunten in het XML-document.
Omdat SQL wordt gebruikt als de zoektaal voor verschillende databases ( Bijvoorbeeld, SQL kan worden gebruikt in databases zoals MySQL, Oracle, DB2, enz.), XPath kan ook worden gebruikt voor verschillende talen en tools ( Bijvoorbeeld, talen zoals XSLT, XQuery, XLink, XPointer, etc. en tools zoals MarkLogic, Software Testing tools zoals Selenium, etc.)
Wat je leert:
XPath - Een overzicht
Xpath is in feite een taal voor navigatie door XML-documenten en terwijl het over navigatie gaat, betekent het dat je in een XML-document in elke richting beweegt, naar een willekeurig element of een attribuut en een tekstknooppunt. XPath is een aanbevolen taal van het World Wide Web Consortium (W3C).
Waar kunnen we XPath gebruiken?
XPath kan worden gebruikt in zowel de Software Development-industrie als de Software Testing-industrie.
niveau 1 helpdesk interviewvragen
Als u zich in het domein Software Testing bevindt, kunt u XPath gebruiken voor het ontwikkelen van automatiseringsscripts in Selenium, of als u zich in het ontwikkelingsdomein bevindt, hebben bijna alle programmeertalen XPath-ondersteuning.
XSLT wordt voornamelijk gebruikt in het XML Content-conversiedomein en gebruikt XPath voor conversie. XSLT werkt nauw samen met XPath en enkele andere talen zoals XQuery en XPointer.
Typen XPath-knooppunt
Hieronder staan de verschillende soorten XPath-knooppunten vermeld.
# 1) Elementknooppunten: Dit zijn de knooppunten die direct onder het hoofdknooppunt komen. Een elementknooppunt kan attributen bevatten. Het vertegenwoordigt een XML-tag. Zoals aangegeven in het onderstaande voorbeeld: Software Tester, State, Country zijn de elementknooppunten.
# 2) Kenmerkknooppunten Dit definieert de eigenschap / attribuut van het elementknooppunt. Het kan zowel onder het elementknooppunt als het hoofdknooppunt staan. Elementknooppunten zijn de ouder van deze knooppunten. Zoals aangegeven in het onderstaande voorbeeld: 'naam' is het attribuutknooppunt van het elementknooppunt (softwaretester). De sneltoets om attribuutknooppunten aan te duiden is '@'.
# 3) Tekstknooppunten Alle teksten die tussen de elementknooppunten komen, staan bekend als tekstknooppunt, zoals in het onderstaande voorbeeld 'Delhi', 'India', 'Chennai' de tekstknooppunten zijn.
# 4) Reactieknooppunten Dit is iets dat een tester of ontwikkelaar schrijft om de code uit te leggen die niet door de programmeertalen wordt verwerkt. Reacties (wat tekst) komen tussen deze openings- en sluitingstags:
# 5) Naamruimten T ”; 0j89 //// / deze worden gebruikt om dubbelzinnigheid tussen meer dan één set XML-elementnamen te verwijderen. Bijvoorbeeld, in XSLT wordt de standaard naamruimte gebruikt als (XSL :).
# 6) Verwerkingsinstructies Deze bevatten instructies die kunnen worden gebruikt bij de aanvragen voor verwerking. De aanwezigheid van deze verwerkingsinstructies kan overal in het document voorkomen. Deze komen tussen.
# 7) Root-knooppunt Dit definieert het bovenste elementknooppunt dat alle onderliggende elementen erin bevat. Root Node heeft geen bovenliggend knooppunt. In het onderstaande XML-voorbeeld is het rootknooppunt “SoftwareTestersList”. Om het hoofdknooppunt te selecteren, gebruiken we schuine streep, d.w.z. ’/’.
gratis online converter youtube naar mp4
We zullen een eenvoudig XML-programma schrijven om de bovengenoemde termen uit te leggen.
Atomaire waarden : Al die knooppunten die geen onderliggende knooppunten of bovenliggende knooppunten hebben, staan bekend als atoomwaarden.
Contextknooppunt : Dit is een bepaald knooppunt in het XML-document waarop expressies worden geëvalueerd. Het kan ook worden beschouwd als het huidige knooppunt en worden afgekort met een enkele punt (.).
Contextgrootte : Dit is het aantal kinderen van de ouder van het contextknooppunt. Bijvoorbeeld, als het contextknooppunt een van de vijfde kinderen van de bovenliggende node is, is de contextgrootte vijf.
Absoluut Xpath: Dit is de XPath-expressie in het XML-document die begint met het hoofdknooppunt of met ‘/’, Bijvoorbeeld, / SoftwareTestersList / softwareTester / @ name = ”T1 ″
Relatieve XPath: Als de XPath-expressie begint met het geselecteerde contextknooppunt, wordt dat beschouwd als Relatieve XPath. Bijvoorbeeld, als de softwaretester het momenteel geselecteerde knooppunt is, wordt / @ name = 'T1' beschouwd als het relatieve XPath.
Assen in XPath
- Zelf-as : Selecteer het contextknooppunt. De XPath-expressie self :: * en. zijn gelijkwaardig. Dit wordt afgekort met een enkele punt (.)
- Onderliggende as : Selecteer de onderliggende items van het contextknooppunt. Elementen, commentaar, tekstknooppunten en verwerkingsinstructies worden beschouwd als een kind van het contextknooppunt. Het naamruimteknooppunt en het attribuutknooppunt worden niet beschouwd als de onderliggende as van het inhoudsknooppunt. Bijvoorbeeld, kind :: software tester.
- Bovenliggende as : Selecteer het bovenliggende punt van het contextknooppunt (als het contextknooppunt het hoofdknooppunt is, zal de bovenliggende as resulteren in een leeg knooppunt.) Deze as wordt afgekort met een dubbele punt (..). De uitdrukkingen (parent :: State) en (../State) zijn equivalent. Als het contextknooppunt geen element als bovenliggend element heeft, resulteert deze XPath-expressie in een leeg knooppunt.
- Attribuut-as : Selecteer het kenmerk van het contextknooppunt. Deze attribuut-as wordt afgekort met het apenstaartje (@). Als het contextknooppunt geen elementknooppunt is, zal dit resulteren in een leeg knooppunt. De expressie (attribuut :: naam) en (@naam) zijn equivalent.
- Voorouder-as : Selecteer het bovenliggende item van het contextknooppunt en het is de bovenliggende ouder, enzovoort. Deze as bevat het hoofdknooppunt als het contextknooppunt zelf niet het hoofdknooppunt is.
- Voorouder of zelf: Selecteer het contextknooppunt met de bovenliggende, de bovenliggende bovenliggende enzovoort, en zal altijd het hoofdknooppunt selecteren.
- Aflopende as : Selecteer alle kinderen van het contextknooppunt, de kinderen van hun kinderen, enzovoort. De onderliggende elementen van het contextknooppunt kunnen elementen, opmerkingen, verwerkingsinstructies en tekstknooppunten zijn. Naamruimteknooppunt en kenmerkknooppunt worden niet in aanmerking genomen onder de onderliggende as.
- Nakomelingen-of-zelf : Selecteer het contextknooppunt en alle kinderen van het contextknooppunt en alle kinderen van de kinderen van alle contextknooppunten enzovoort. Net als in het bovenstaande geval worden elementen, opmerkingen, verwerkingsinstructies en tekstknooppunten beschouwd en worden naamruimten en attribuutknooppunten niet beschouwd onder de kinderen van het contextknooppunt.
- Voorafgaande as : Selecteer alle knooppunten die vóór het contextknooppunt komen in het hele document dat wordt beschouwd als de voorgaande as. Naamruimte, voorouders en attribuutknooppunt worden niet als de voorgaande as beschouwd.
- As van vorige broer of zus : Selecteer alle voorgaande broers en zussen van het contextknooppunt. Alle knooppunten die vóór het contextknooppunt verschijnen en ook dezelfde ouder hebben als het contextknooppunt in het XML-document. Het voorgaande broer of zus zal resulteren in leeg als het contextknooppunt een naamruimte of een attribuut is.
- Volgende as : Selecteer alle knooppunten die na het contextknooppunt in het XML-document komen. Naamruimte, attribuut en afstammelingen worden niet in aanmerking genomen in deze lijst met assen.
- As van broer of zus : Selecteer alle volgende broers en zussen van het contextknooppunt. Alle knooppunten die na het contextknooppunt komen en ook dezelfde ouder hebben als het contextknooppunt in het XML-document, worden beschouwd als een as op hetzelfde niveau. Dit zal resulteren in een lege knooppuntenset als het contextknooppunt een naamruimte of attribuutknooppunt is.
- Naamruimte : Selecteer de naamruimteknooppunten van het contextknooppunt. Dit zal resulteren in leeg als het contextknooppunt geen elementknooppunt is.
Datatypes in XPath
Hieronder staan de verschillende datatypes in XPath.
- Aantal: Getallen in XPath vertegenwoordigen een drijvende-kommagetal en worden geïmplementeerd als IEEE 754 drijvende-kommagetallen. Geheel getal datatype houdt geen rekening in XPath.
- Booleaans: Dit vertegenwoordigt waar of onwaar.
- Draad: Dit vertegenwoordigt nul of meer tekens.
- Node-set: Dit vertegenwoordigt een set van nul of meer knooppunten.
Jokertekens in XPath
Hieronder staan de Wildcards in XPath vermeld.
- Een asterisk (*) : Hiermee worden alle elementknooppunten van het contextknooppunt geselecteerd. Het selecteert de tekstknooppunten, opmerkingen, verwerkingsinstructies en attributenknooppunt.
- Apenstaartje met een asterisk (@ *) : Hiermee worden alle attribuutknooppunten van het contextknooppunt geselecteerd.
- Knooppunt() : Hiermee worden alle knooppunten van het contextknooppunt geselecteerd. Deze selecteren naamruimten, tekst, attributen, elementen, opmerkingen en verwerkingsinstructies.
XPath-operators
Opmerking: In de onderstaande tabel staat e voor elke XPath-expressie.
Operatoren | Omschrijving | Voorbeeld |
---|---|---|
e1! = e2 | Niet gelijk | @name! = ’T1’ |
e1 + e2 | Toevoegingen (als e1 en e2 getallen zijn) | 5 + 2 |
e1 - e2 | Aftrekken (als e1 en e2 getallen zijn) | 10 - 4 |
e1 * e2 | Vermenigvuldigen (als e1 en e2 getallen zijn) | 3. 4 |
e1 div e2 | Deling (als e1 en e2 getallen zijn en het resultaat een drijvende-kommawaarde is) | 4 div 2 |
e1 | e2 | vereniging van twee knooppunten die overeenkomen met e1 en overeenkomen met e2. | // Staat | // land |
e1 = e2 | Is gelijk aan | @name = ’T1’ |
e1Test van e1 is kleiner dan e2 (kleiner dan teken ‘<’ must be excaped by ‘<’) | test = ”5<9” will result true(). | |
e1> e2 | Test van e1 is groter dan e2 (groter-dan-teken ‘>’ moet worden weggelaten door ‘>’) | test = ”5> 9” zal false () opleveren. |
e1<= e2 | Test van e1 is kleiner dan of gelijk aan e2. | test = ”5<= 9” will result false(). |
e1> = e2 | Test van e1 is groter dan of gelijk aan e2. | test = ”5> = 9” zal false () opleveren. |
e1 of e2 | Geëvalueerd of e1 of e2 waar zijn. | |
e1 en e2 | Geëvalueerd of zowel e1 als e2 waar zijn. | |
e1 mod e2 | Retourneert de rest met drijvende komma van e1 gedeeld door e2. | 7 mod 2 |
Predikaten in XPath
Predikaten worden gebruikt als filters die de knooppunten beperken die zijn geselecteerd door de XPath-expressie. Elk predikaat wordt geconverteerd naar een Booleaanse waarde, ofwel true of false, als het waar is voor het gegeven XPath, wordt dat knooppunt geselecteerd, als het false is, wordt het knooppunt niet geselecteerd.
Predikaten staan altijd tussen vierkante haken, zoals ().
Bijvoorbeeld, softwareTester (@ name = ”T2 ″):
Dit selecteert het element dat is genoemd als een attribuut met de waarde van T2.
Toepassingen van XPath bij softwaretests
XPath is erg handig bij het testen van automatisering. Zelfs als u handmatige tests uitvoert, is de kennis van XPaths erg handig om u te helpen begrijpen wat er aan de achterkant van de applicatie gebeurt.
hoe SQL-injectie handmatig te testen
Als u zich bezig houdt met het testen van automatisering, moet u hebben gehoord van Appium studio, een van de beste automatiseringstools voor het testen van mobiele apps. In deze tool is er een zeer krachtige functie genaamd de XPath-functie waarmee u de elementen van een specifieke pagina door het automatiseringsscript kunt identificeren.
We willen hier nog een ander voorbeeld aanhalen uit de tool die bijna elke softwaretester kent, namelijk Selenium. De kennis van XPath in Selenium IDE en Selenium WebDriver is een vaardigheid die testers moeten hebben.
XPath fungeert als een elementzoeker. Telkens wanneer u een specifiek element op een pagina moet lokaliseren en er een actie op moet uitvoeren, moet u het XPath ervan vermelden in de doelkolom van het Selenium-script.
Zoals je in de bovenstaande afbeelding kunt zien, krijg je de optie ‘Kopieer XPath’ als je een element van een webpagina selecteert en inspecteert. Als voorbeeld werd genomen uit het Google-zoekwebelement via de Chrome-webbrowser en toen de XPath werd gekopieerd zoals weergegeven in de bovenstaande afbeelding, kregen we de onderstaande waarde:
Als we nu veronderstellen dat we een klikactie op deze link moeten uitvoeren, dan moeten we een klikcommando in het Selenium-script opgeven en het doel van het klikcommando is de bovenstaande XPath. Het gebruik van XPath is niet alleen beperkt tot de bovenstaande twee tools. Er zijn veel gebieden en tools voor het testen van software waarin XPath wordt gebruikt.
We hopen dat u een goed beeld heeft gekregen van het belang van XPath op het gebied van softwaretesten.
Gevolgtrekking
In deze tutorial hebben we geleerd over XPath, het gebruik van XPath-expressie, ondersteuning voor XPath-expressie in verschillende talen en tools. We hebben geleerd dat XPath kan worden gebruikt in elk domein van softwareontwikkeling en softwaretests.
We hebben ook de verschillende gegevenstypen van XPath geleerd, verschillende assen die in XPath worden gebruikt en hun gebruik, knooppunttypen die worden gebruikt in XPath, verschillende operatoren en predicaten in XPath, het verschil tussen relatieve en absolute XPath, verschillende jokertekens die worden gebruikt in XPath enz.
Veel leesplezier !!
Aanbevolen literatuur
- Een eenvoudige aanpak voor XML naar databasetests
- Een uitstekende manier om gegevens te testen met behulp van XML-technologieën (witboek)
- Bewering in SOAtest met een XML-codevoorbeeld
- QTP Tutorial # 16 - Stappen om XML-, toegankelijkheids- en databasecontrolepunten in te voegen
- Top 45 XML-interviewvragen en antwoorden voor 2021 (LAATSTE)
- Verschil tussen SQL versus MySQL versus SQL Server (met voorbeelden)
- TestNG-voorbeeld: het bestand TestNG.xml maken en gebruiken
- Ultieme XPath Cheat Sheet-zelfstudie met syntaxis en voorbeelden