Wat is XPath in Selenium?

Zoals we allemaal weten dat nu met de verandering in de trend in de software-industrie, de reikwijdte van handmatig testen is geminimaliseerd en meer van de testgevallen zijn geautomatiseerd, omdat het niet alleen de efficiëntie en nauwkeurigheid verhoogt, maar ook de tijd verkort. Veel softwaretools zijn beschikbaar op de markt voor de ontwikkeling en uitvoering van geautomatiseerde testscripts. Selenium is er een van. Selenium is open-source en misschien wel de meest gebruikte suite voor automatiseringstests die wordt gebruikt voor het testen van automatisering. Het ondersteunt verschillende talen zoals Php, Java, Perl, Python, etc. door de stuurprogramma's van bepaalde talen te installeren. Het ondersteunt ook meerdere browsers zoals Chrome, Mozilla Firefox, IE1, Edge, Opera browser, etc.

XPath staat voor XML Path Language. In Selenium is XPath niets anders dan een normaal XML-pad dat wordt gebruikt om elk element in de webpagina te vinden met behulp van XML-paduitdrukking. Voor het uitvoeren van elke bewerking zoals klikken op de knop, schrijven in een tekstvak, het selecteren van een veld, enz. Het eerste is om de locatie van dat webelement in het document en in Selenium te vinden, helpt Xpath dat pad te vinden. XPath gebruikt de HTML DOM-structuur bij het verzamelen van het pad van elk element in een webpagina. Het heeft paduitdrukking geschreven samen met enkele voorwaarden. XPath is een W3C-aanbeveling,

Syntaxis van XPath in Selenium

Hieronder wordt de syntaxis van XPath in Selenium gegeven:

Xpath = //Tagname(@Atrribute=value)

waar,

  • //: wordt gebruikt om het huidige knooppunt te selecteren.
  • Tagname: specificeert de tagnaam van een bepaald knooppunt zoals img, div, input, etc.
  • @: Selecteert het kenmerk.
  • Attribuut: specificeert de attribuutnaam van het knooppunt.
  • Waarde: specificeert de waarden van attributen van het knooppunt.

Verschillende locators worden in Xpath gebruikt om de webelementen te lokaliseren:

  • Id: zoekt het webelement op de id van dat element. (Id is uniek voor elk webelement).
  • Naam: zoekt het webelement op naam van dat element.
  • Class name: zoekt het webelement op de klassenaam van dat element.
  • Linktekst: zoekt het webelement op basis van de tekst die op de link van dat element staat.
  • CSS-pad: elementen zonder naam, id, klassenaam worden gevonden via het CSS-pad dat is gemaakt door testers / ontwikkelaars.

Soorten XPath in Selenium

Er zijn in principe twee soorten XPath in Selenium die hieronder worden beschreven:

1. Absolute XPath

Het is een van de gemakkelijkste en directe manieren om een ​​webelement in een document te vinden. Het selecteert een elementpad van het hoofdknooppunt en neemt het pad tot het element dat alle secties in een document beslaat, inclusief div, sectie, li, enz. Het begint met een enkele schuine streep '/' die het hoofdniveau aangeeft. Het enige nadeel van het gebruik van het absolute pad in Selenium is dat als er wijzigingen worden aangebracht in de website of een document, de hele XPath van dat element verandert en dus het vorige pad niet werkt en het hele programma mislukt.

Voorbeeld:

html/body/div(1)/section/div/div/div/div(2)/div

Als er wijzigingen zijn aangebracht in het HTML-document en de positie van div-elementen, is het vorige XPath mislukt.

2. Relatieve XPath

Een van de nadelen van Absolute XPath, afgezien van modificatie, is te lange paden, relatieve paden zijn een redder in dergelijke situaties. Relatief pad wordt gebruikt om het pad van een element te definiëren vanuit het midden van de HTML DOM-structuur. In tegenstelling tot Absolute XPaths, is het niet nodig om het pad vanaf het rootniveau te definiëren, wat op zijn beurt de totale lengte van XPath vermindert. Het begint met een dubbele schuine streep '//', dat wil zeggen het webelement overal in het document selecteren.

Voorbeeld:

//input(@id = 'email')/div/li/a

XPath-functies in Selenium

Hieronder staan ​​enkele van de functies van XPath die in Selenium worden gebruikt:

1. Bevat (): het is een methode die wordt gebruikt in XPath-expressie en wordt gebruikt om het element met de gedeeltelijke tekst te vinden in het geval dat de te doorzoeken tekst te lang is en de waarde van het kenmerk dynamisch verandert bij opnieuw laden.

Voorbeeld:

Xpath = //*(contains(@name='inputButton'))

2. Volgende: deze methode selecteert alle elementen van het huidige knooppunt in de HTML DOM-structuur.

Voorbeeld:

Xpath=//*(@type='password')//following::input(1)

3. Voorouder: deze methode wordt gebruikt om alle voorouderelementen van het huidige knooppunt te selecteren. De voorouder kan grootouders zijn, ouders van het huidige knooppunt in het HTML-document.

Voorbeeld:

Xpath=//*(text()='Introduction')//ancestor::div

Alle voorouders van het huidige webelement komen overeen met de criteria van text () = 'Inleiding' met de div-tag.

4. Kind: deze methode wordt gebruikt in de scenario's waarin we de onderliggende elementen van het huidige knooppunt in het HTML-document willen selecteren.

Voorbeeld:

Xpath=//*(@id='email')/child::div

5. Doorgaan: deze methode wordt gebruikt om alle knooppunten te selecteren die doorgaan naar het huidige knooppunt of die vóór het huidige knooppunt komen.

Voorbeeld:

Xpath=//*(@type=button)//preceding::div

6. Volgende broer of zus: deze methode wordt gebruikt om de broers en zussen te lokaliseren die zich op hetzelfde niveau bevinden als het huidige knooppunt.

Voorbeeld:

Xpath=//*(@type=button)//following-sibling::div

7. Parent: deze methode wordt gebruikt om het bovenliggende knooppunt van het huidige knooppunt in het HTML-document te vinden.

Voorbeeld:

Xpath=//*(@id='password')//parent::li

8. Zelf: deze methode wordt gebruikt om zichzelf in het HTML-document te plaatsen. Zelf betekent alleen het huidige knooppunt.

Voorbeeld:

Xpath=//*(@id='email')//self::input

9. Afstammeling: deze methode wordt gebruikt om de afstammelingen van het huidige knooppunt in het HTML-document te vinden.

Voorbeeld:

Xpath=//*(@id='email')//descendant::a

10. Aanvang: deze methode wordt gebruikt in de scenario's wanneer we de starttekst van de attributen willen matchen en wanneer we het webelement moeten vinden wanneer het attribuut dynamisch verandert bij het vernieuwen en een webpagina opnieuw laden.

Voorbeeld:

Xpath=//label(starts-with(@name, 'mess_avg'))

Conclusie

Hierboven zijn enkele van de XPath-typen en de verschillende functies die in Selenium voor XPath worden gebruikt. Deze functies maken het gemakkelijk om met XPaths te werken als de belangrijkste stap voor het automatiseren van het lokaliseren van het webelement via XPath. Verschillende locators zoals id, naam, CSS-pad, linktekst worden in het XPath gebruikt om webelementen op de webpagina te vinden. Kennis en verschillende manieren om XPath te vinden zijn erg belangrijk bij het werken met automatiseringstests met Selenium of een andere tool.

Aanbevolen artikelen

Dit is een gids voor Wat is XPath in Selenium ?. Hier bespreken we het basisconcept, de syntaxis, types en functies van XPath in Selenium met zijn voorbeelden. U kunt ook het volgende artikel bekijken voor meer informatie -

  1. Top 10 gebruik van Selenium
  2. Hoe Selenium | Stappen
  3. Selenium Alternatieven | Components
  4. Wat is Selenium Web Driver?
  5. Wat is XPath?