Qu'est-ce que XPath dans Selenium?

Comme nous le savons tous, avec le changement de tendance dans l'industrie du logiciel, la portée des tests manuels a été minimisée et un plus grand nombre de cas de test sont automatisés car cela augmente non seulement l'efficacité et la précision, mais réduit également le temps. De nombreux outils logiciels sont disponibles sur le marché pour le développement et l'exécution de scripts de test automatisés. Le sélénium en fait partie. Selenium est open-source et peut-être la suite de tests d'automatisation la plus utilisée pour les tests d'automatisation. Il prend en charge une variété de langages comme Php, Java, Perl, Python, etc. en installant les pilotes de langages particuliers. Il prend également en charge plusieurs navigateurs comme Chrome, Mozilla Firefox, IE1, Edge, navigateur Opera, etc.

XPath signifie XML Path Language. Dans Selenium, XPath n'est rien d'autre qu'un chemin XML normal utilisé pour localiser n'importe quel élément de la page Web à l'aide de l'expression de chemin XML. Pour effectuer n'importe quelle opération comme cliquer sur le bouton, écrire dans une zone de texte, sélectionner n'importe quel champ, etc. la première chose à faire est de trouver l'emplacement de cet élément Web dans le document et dans Selenium, Xpath aide à localiser ce chemin. XPath utilise la structure HTML DOM lors de la collecte du chemin de n'importe quel élément d'une page Web. Il a une expression de chemin écrite avec certaines conditions. XPath est une recommandation du W3C,

Syntaxe de XPath dans Selenium

Ci-dessous est donnée la syntaxe de XPath dans Selenium:

Xpath = //Tagname(@Atrribute=value)

où,

  • //: Utilisé pour sélectionner le nœud actuel.
  • Tagname: spécifie le nom de balise d'un nœud particulier comme img, div, input, etc.
  • @: Sélectionne l'attribut.
  • Attribut: spécifie le nom d'attribut du nœud.
  • Valeur: spécifie les valeurs des attributs du nœud.

Divers localisateurs sont utilisés dans Xpath pour localiser les éléments Web:

  • Id: recherche l'élément Web par l'ID de cet élément. (L'ID est unique pour chaque élément Web).
  • Nom: recherche l'élément Web par le nom de cet élément.
  • Nom de classe: recherche l'élément Web par le nom de classe de cet élément.
  • Texte du lien: recherche l'élément Web par le texte écrit sur le lien de cet élément.
  • Chemin CSS: Les éléments sans nom, id, nom de classe sont découverts via le chemin CSS créé par les testeurs / développeurs.

Types de XPath dans Selenium

Il existe essentiellement deux types de XPath dans Selenium qui sont décrits ci-dessous:

1. Absolute XPath

C'est l'un des moyens les plus simples et directs de localiser un élément Web dans un document. Il sélectionne un chemin d'élément à partir du nœud racine et prend le chemin jusqu'à l'élément couvrant toutes les sections d'un document, y compris div, section, li, etc. Il commence par une seule barre oblique "/" spécifiant le niveau racine. Le seul inconvénient de l'utilisation du chemin absolu dans Selenium est que si des modifications sont apportées au site Web ou à un document, l'intégralité de XPath de cet élément change et, par conséquent, le chemin précédent ne fonctionnera pas et tout le programme échouera.

Exemple:

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

Si des modifications apportées au document HTML et la position des éléments div ont été modifiées, le XPath précédent échouera.

2. XPath relatif

Outre les modifications, l'un des inconvénients d'Absolute XPath est les chemins trop longs, les chemins relatifs sont un sauveur dans de telles situations. Le chemin relatif est utilisé pour définir le chemin d'un élément à partir du milieu de la structure HTML DOM. Contrairement à Absolute XPaths, il n'est pas nécessaire de définir le chemin à partir du niveau racine, ce qui réduit à son tour la longueur totale de XPath. Il commence par une double barre oblique «//», c'est-à-dire la sélection de l'élément Web de n'importe où dans le document.

Exemple:

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

Fonctions XPath dans Selenium

Vous trouverez ci-dessous certaines des fonctions de XPath utilisées dans Selenium:

1. Contains (): C'est une méthode qui est utilisée dans l'expression XPath et qui est utilisée pour localiser l'élément avec le texte partiel dans le cas où le texte à rechercher est trop long et la valeur de l'attribut change dynamiquement au rechargement.

Exemple:

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

2. Suivant: Cette méthode sélectionne tous les éléments du nœud actuel dans la structure HTML DOM.

Exemple:

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

3. Ancêtre: Cette méthode est utilisée pour sélectionner tous les éléments ancêtres du nœud actuel. L'ancêtre peut être des grands-parents, parents du nœud actuel dans le document HTML.

Exemple:

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

Il trouvera tous les ancêtres de l'élément web actuel correspondant aux critères de text () = 'Introduction' ayant la balise div.

4. Enfant: cette méthode est utilisée dans les scénarios dans lesquels nous voulons sélectionner les éléments enfants du nœud actuel dans le document HTML.

Exemple:

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

5. Procédure: Cette méthode est utilisée pour sélectionner tous les nœuds se dirigeant vers le nœud actuel ou ceux qui précèdent le nœud actuel.

Exemple:

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

6. Frères et sœurs suivants: Cette méthode est utilisée pour localiser les frères et sœurs qui sont au même niveau que le nœud actuel.

Exemple:

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

7. Parent: Cette méthode est utilisée pour localiser le parent du nœud actuel dans le document HTML.

Exemple:

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

8. Self: Cette méthode est utilisée pour se localiser dans le document HTML. Self signifie uniquement le nœud actuel.

Exemple:

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

9. Descendant: Cette méthode est utilisée pour rechercher les descendants du nœud actuel dans le document HTML.

Exemple:

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

10. Démarrer avec: cette méthode est utilisée dans les scénarios lorsque nous voulons faire correspondre le texte de départ des attributs et lorsque nous devons localiser l'élément Web lorsque l'attribut change dynamiquement lors de l'actualisation et du rechargement d'une page Web.

Exemple:

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

Conclusion

Ci-dessus sont mentionnés certains des types XPath et les diverses fonctions utilisées dans Selenium pour XPath. Ces fonctions facilitent l'utilisation de XPaths en tant qu'étape la plus importante pour automatiser la localisation de l'élément Web via XPath. Divers localisateurs tels que l'id, le nom, le chemin CSS, le texte du lien sont utilisés dans XPath pour localiser les éléments Web dans la page Web. Les connaissances et les différentes façons de trouver XPath sont très importantes lorsque vous travaillez avec des tests d'automatisation à l'aide de Selenium ou de tout autre outil.

Articles recommandés

Ceci est un guide sur Qu'est-ce que XPath dans le sélénium?. Nous discutons ici du concept de base, de la syntaxe, des types et des fonctions de XPath dans Selenium avec ses exemples. Vous pouvez également consulter l'article suivant pour en savoir plus -

  1. Top 10 des utilisations du sélénium
  2. Comment installer Selenium »wiki utile Pas
  3. Sélénium Alternatives | Composants
  4. Qu'est-ce que Selenium Web Driver?
  5. Qu'est-ce que XPath?