comprehensive xpath tutorial xml path language
Apprenez tout sur XML Path Language (XPath) avec des exemples. Ce didacticiel XPath couvre les utilisations et les types de XPath, d'opérateurs XPath, d'axes et d'applications dans les tests:
Le terme XPath signifie XML Path Language. C'est un langage de requête utilisé pour sélectionner divers nœuds dans le document XML.
Comme SQL est utilisé comme langage de requête pour différentes bases de données ( Par exemple, SQL peut être utilisé dans des bases de données comme MySQL, Oracle, DB2, etc.), XPath peut également être utilisé pour divers langages et outils ( Par exemple, langages comme XSLT, XQuery, XLink, XPointer, etc. et des outils comme MarkLogic, des outils de test de logiciels comme Selenium, etc.)
Ce que vous apprendrez:
XPath - Un aperçu
Xpath est fondamentalement un langage de navigation dans les documents XML et, tout en discutant de la navigation, cela signifie se déplacer dans un document XML dans n'importe quelle direction, allant vers n'importe quel élément ou n'importe quel attribut et nœud de texte. XPath est une langue recommandée par le World Wide Web Consortium (W3C).
Où pouvons-nous utiliser XPath?
XPath peut être utilisé à la fois dans l'industrie du développement de logiciels et dans l'industrie des tests de logiciels.
meilleur logiciel de nettoyage gratuit pour Windows 10
Si vous êtes dans le domaine Software Testing, vous pouvez utiliser XPath pour développer des scripts d'automatisation dans Selenium, ou si vous êtes dans le domaine du développement, presque tous les langages de programmation prennent en charge XPath.
XSLT est principalement utilisé dans le domaine de conversion de contenu XML et utilise XPath pour la conversion. XSLT travaille en étroite collaboration avec XPath et certains autres langages comme XQuery et XPointer.
Types de nœud XPath
Vous trouverez ci-dessous les différents types de XPath Node.
# 1) Nœuds d'élément: Ce sont les nœuds qui viennent directement sous le nœud racine. Un nœud d'élément peut contenir des attributs. Il représente une balise XML. Comme indiqué dans l'exemple ci-dessous: Software Tester, State, Country sont les nœuds d'élément.
# 2) Nœuds d'attribut :Cela définit la propriété / l'attribut du nœud d'élément. Il peut être sous le nœud d'élément ainsi que sous le nœud racine. Les nœuds d'élément sont le parent de ces nœuds. Comme indiqué dans l'exemple ci-dessous: «nom» est le nœud d'attribut du nœud d'élément (testeur de logiciel). Le raccourci pour désigner les nœuds d'attribut est «@».
# 3) Noeuds de texte :Tous les textes qui entrent entre les nœuds d'élément sont appelés nœuds de texte comme dans l'exemple ci-dessous «Delhi», «Inde», «Chennai» sont les nœuds de texte.
# 4) Noeuds de commentaire :C'est quelque chose qu'un testeur ou un développeur écrit pour expliquer le code qui n'est pas traité par les langages de programmation. Des commentaires (du texte) se situent entre ces balises d'ouverture et de fermeture:
# 5) Espaces de noms :T ”; 0j89 //// / ceux-ci sont utilisés pour supprimer l'ambiguïté entre plusieurs ensembles de noms d'élément XML. Par exemple, dans XSLT, l'espace de noms par défaut est utilisé comme (XSL :).
# 6) Instructions de traitement :Celles-ci contiennent des instructions qui pourraient être utilisées dans les demandes de traitement. La présence de ces instructions de traitement peut être n'importe où dans le document. Ceux-ci viennent entre les deux.
# 7) Nœud racine :Cela définit le nœud d'élément le plus haut qui contient tous les éléments enfants à l'intérieur. Le nœud racine n'a pas de nœud parent. Dans l'exemple XML ci-dessous, le nœud racine est «SoftwareTestersList». Pour sélectionner le nœud racine, nous utilisons une barre oblique, c'est-à-dire ’/’.
qu'est-ce que les tests d'automatisation dans les tests logiciels
Nous allons écrire un programme XML de base pour expliquer les termes mentionnés ci-dessus.
Delhi India chennai India
Valeurs atomiques : Tous les nœuds qui n'ont ni nœuds enfants ni nœuds parents sont appelés valeurs atomiques.
Nœud de contexte : Il s'agit d'un nœud particulier du document XML sur lequel les expressions sont évaluées. Il pourrait également être considéré comme le nœud actuel et abrégé par un seul point (.).
Taille du contexte : Il s'agit du nombre d'enfants du parent du nœud de contexte. Par exemple, si le nœud de contexte est l'un des cinquièmes enfants de son parent, la taille du contexte est de cinq.
Xpath absolu: Il s’agit de l’expression XPath du document XML qui commence par le nœud racine ou par «/», Par exemple, / SoftwareTestersList / softwareTester / @ name = ”T1 ″
XPath relatif: Si l'expression XPath commence par le nœud de contexte sélectionné, cela est considéré comme XPath relatif. Par exemple, si le testeur logiciel est le nœud actuellement sélectionné, alors / @ name = ”T1” est considéré comme le XPath relatif.
Haches dans XPath
- Auto-axe : Sélectionnez le nœud de contexte. L'expression XPath self :: * et. sont équivalents. Ceci est abrégé par un seul point (.)
- Axe enfant : Sélectionnez les enfants du nœud de contexte. Les éléments, les commentaires, les nœuds de texte et les instructions de traitement sont considérés comme des enfants du nœud de contexte. Le nœud d'espace de nom et le nœud d'attribut ne sont pas considérés comme l'axe enfant du nœud de contenu. Par exemple, enfant :: testeur de logiciel.
- Axe parent : Sélectionnez le parent du nœud de contexte (si le nœud de contexte est le nœud racine, alors l'axe parent se traduira par un nœud vide.) Cet axe est abrégé par un double point (..). Les expressions (parent :: State) et (../State) sont équivalentes. Si le nœud de contexte n'a pas d'élément comme parent, cette expression XPath se traduira par un nœud vide.
- Axe d'attribut : Sélectionnez l'attribut du nœud de contexte. Cet axe attributaire est abrégé par le signe arobase (@). Si le nœud de contexte n'est pas un nœud d'élément, il en résultera un nœud vide. Les expressions (attribut :: nom) et (@nom) sont équivalentes.
- Axe des ancêtres : Sélectionnez le parent du nœud de contexte et le parent du parent, etc. Cet axe contient le nœud racine si le nœud de contexte lui-même n'est pas le nœud racine.
- Ancêtre ou soi: Sélectionnez le nœud de contexte avec son parent, le parent de son parent, etc. et sélectionnera toujours le nœud racine.
- Axe descendant : Sélectionnez tous les enfants du nœud de contexte, les enfants de leurs enfants, etc. Les enfants du nœud de contexte peuvent être des éléments, des commentaires, des instructions de traitement et des nœuds de texte. Le nœud d'espace de nom et le nœud d'attribut ne sont pas considérés sous l'axe descendant.
- Descendant-ou-soi : Sélectionnez le nœud de contexte et tous les enfants du nœud de contexte et tous les enfants des enfants de tous les nœuds de contexte et ainsi de suite. Comme dans le cas ci-dessus, les éléments, les commentaires, les instructions de traitement et les nœuds de texte sont pris en compte et les espaces de noms et les nœuds d'attribut ne sont pas considérés sous les enfants du nœud de contexte.
- Axe précédent : Sélectionnez tous les nœuds qui précèdent le nœud de contexte dans tout le document considéré comme l'axe précédent. L'espace de noms, les ancêtres et le nœud d'attribut ne sont pas considérés comme l'axe précédent.
- Axe des frères et sœurs précédents : Sélectionnez tous les frères et sœurs précédents du nœud de contexte. Tous les nœuds qui apparaissent avant le nœud de contexte et ont également le même parent que le nœud de contexte dans le document XML. Le frère précédent donnera un résultat vide si le nœud de contexte est un espace de noms ou est un attribut.
- Axe suivant : Sélectionnez tous les nœuds situés après le nœud de contexte dans le document XML. L'espace de nom, l'attribut et les descendants ne sont pas pris en compte dans cette liste d'axes suivante.
- Axe suivant-frère : Sélectionnez tous les frères suivants du nœud de contexte. Tous les nœuds qui viennent après le nœud de contexte et ont également le même parent que le nœud de contexte dans le document XML sont considérés comme un axe frère suivant. Cela entraînera un ensemble de nœuds vide si le nœud de contexte est un espace de noms ou un nœud d'attribut.
- Espace de noms : Sélectionnez les nœuds d'espace de noms du nœud de contexte. Cela entraînera une valeur vide si le nœud de contexte n'est pas un nœud d'élément.
Types de données dans XPath
Vous trouverez ci-dessous les différents types de données dans XPath.
- Nombre: Les nombres dans XPath représentent un nombre à virgule flottante et sont implémentés en tant que nombres à virgule flottante IEEE 754. Le type de données entier n'est pas pris en compte dans XPath.
- Booléen: Cela représente soit vrai soit faux.
- Chaîne de caractères: Cela représente zéro ou plusieurs caractères.
- Ensemble de nœuds: Cela représente un ensemble de zéro ou plusieurs nœuds.
Caractères génériques dans XPath
Vous trouverez ci-dessous les jokers dans XPath.
- Un astérisque (*) : Ceci sélectionnera tous les nœuds d'élément du nœud de contexte. Il sélectionnera les nœuds de texte, les commentaires, les instructions de traitement et le nœud d'attributs.
- At-sign avec un astérisque (@ *) : Ceci sélectionnera tous les nœuds d'attribut du nœud de contexte.
- Nœud() : Ceci sélectionnera tous les nœuds du nœud de contexte. Ceux-ci sélectionnent les espaces de noms, le texte, les attributs, les éléments, les commentaires et les instructions de traitement.
Opérateurs XPath
Noter: Dans le tableau ci-dessous, e représente toute expression XPath.
Les opérateurs | La description | Exemple |
---|---|---|
e1! = e2 | Inégal | @name! = 'T1' |
e1 + e2 | Ajouts (si e1 et e2 sont des nombres) | 5 + 2 |
e1 - e2 | Soustraction (si e1 et e2 sont des nombres) | 10 - 4 |
e1 * e2 | Multiplication (si e1 et e2 sont des nombres) | 3. 4 |
e1 div e2 | Division (si e1 et e2 sont des nombres et que le résultat sera en virgule flottante) | 4 div 2 |
e1 | e2 | union de deux nœuds qui correspondent à e1 et correspondent à e2. | // État | //de campagne |
e1 = e2 | Équivaut à | @name = 'T1' |
e1Le test de e1 est inférieur à e2 (signe inférieur à «<’ must be excaped by ‘<’) | test = '5<9” will result true(). | |
e1> e2 | Le test de e1 est supérieur à e2 (le signe supérieur à «>» doit être remplacé par «>») | test = '5> 9' donnera faux (). |
e1<= e2 | Le test de e1 est inférieur ou égal à e2. | test = '5<= 9” will result false(). |
e1> = e2 | Le test de e1 est supérieur ou égal à e2. | test = '5> = 9' donnera faux (). |
e1 ou e2 | Évalué si e1 ou e2 sont vrais. | |
e1 et e2 | Évalué si e1 et e2 sont tous les deux vrais. | |
e1 mod e2 | Renvoie le reste en virgule flottante de e1 divisé par e2. | 7 mod 2 |
Prédicats dans XPath
Les prédicats sont utilisés comme filtres qui restreignent les nœuds sélectionnés par l'expression XPath. Chaque prédicat est converti en valeur booléenne true ou false, s'il est vrai pour le XPath donné, ce nœud sera sélectionné, s'il est faux, le nœud ne sera pas sélectionné.
Les prédicats viennent toujours entre crochets comme ().
Par exemple, softwareTester (@ name = ”T2 ″):
Cela sélectionnera l'élément qui a été nommé comme attribut avec la valeur T2.
Applications de XPath dans les tests de logiciels
XPath est très utile dans les tests d'automatisation. Même si vous effectuez des tests manuels, la connaissance des XPaths sera très utile pour vous aider à comprendre ce qui se passe au niveau du backend de l'application.
comment initialiser une variable statique en c ++
Si vous êtes en test d'automatisation, vous devez avoir entendu parler d'Appium studio, l'un des meilleurs outils d'automatisation pour les tests d'applications mobiles. Dans cet outil, il existe une fonctionnalité très puissante appelée Fonction XPath qui vous permet d'identifier les éléments d'une page spécifique tout au long du script d'automatisation.
Nous aimerions citer ici un autre exemple de l'outil que presque tous les testeurs de logiciels connaissent, à savoir Selenium. La connaissance de XPath dans Selenium IDE et Selenium WebDriver est une compétence incontournable pour les testeurs.
XPath agit comme un localisateur d'élément. Chaque fois que vous devez localiser un élément spécifique sur une page et effectuer une action dessus, vous devez mentionner son XPath dans la colonne cible du script Selenium.
Comme vous pouvez le voir dans l'image ci-dessus, si vous sélectionnez un élément d'une page Web et l'inspectez, vous obtiendrez une option de «Copier XPath». Un exemple a été pris à partir de l'élément Web de recherche Google via le navigateur Web Chrome et lorsque XPath a été copié comme indiqué dans l'image ci-dessus, nous avons obtenu la valeur ci-dessous:
//*(@id='tsf')/div(2)/div(3)/center/input(1)
Maintenant, si nous supposons que nous devons effectuer une action de clic sur ce lien, nous devrons fournir une commande de clic dans le script Selenium et la cible de la commande de clic sera le XPath ci-dessus. L'utilisation de XPath n'est pas seulement limitée aux deux outils ci-dessus. Il existe de nombreux domaines et outils de test logiciel dans lesquels XPath est utilisé.
Nous espérons que vous avez une bonne idée de l'importance de XPath dans le domaine des tests logiciels.
Conclusion
Dans ce didacticiel, nous avons appris XPath, comment utiliser l'expression XPath, la prise en charge de l'expression XPath dans différents langages et outils. Nous avons appris que XPath peut être utilisé dans n'importe quel domaine du développement logiciel et des tests logiciels.
Nous avons également appris les différents types de données de XPath, les différents axes utilisés dans XPath ainsi que leur utilisation, les types de nœuds utilisés dans XPath, les différents opérateurs et les prédicats dans XPath, la différence entre XPath relatif et absolu, les différents jokers utilisés dans XPath, etc.
Bonne lecture!!
lecture recommandée
- Une approche simple pour les tests de bases de données XML
- Un excellent moyen de tester les données à l'aide des technologies XML (livre blanc)
- Assertion dans SOAtest avec un exemple de code XML
- Tutoriel QTP n ° 16 - Étapes pour insérer des points de contrôle XML, d'accessibilité et de base de données
- Les 45 principales questions et réponses d'entrevue XML pour 2021 (DERNIERS)
- Différence entre SQL et MySQL et SQL Server (avec exemples)
- Exemple TestNG: Comment créer et utiliser un fichier TestNG.xml
- Tutoriel Ultimate XPath Writing Cheat Sheet avec syntaxe et exemples