Asseyez-vous sur le trône Selenium avec les fonctions XPath
Fonctions XPath –
Il existe 4 types de fonctions XPath utilisées pour trouver des éléments difficiles. Certains de ces éléments peuvent contenir des valeurs d'attribut qui changent. Les types de fonctions XPath sont
#1 Ensemble de nœuds
#2 Chaîne
#3 Booléen
#4 Nombre
Cette vidéo montre comment trouver des éléments avec des valeurs d'attribut dynamiques.
Le livre Selenium gratuit couvre XPath (pages 67 - 78)
► Transcription
Introduction
Le prochain AUT est GitHub. Inspectons la note sous le nom d'utilisateur. Voici un cas particulier où XPath ou le sélecteur CSS est notre seule option et un exemple parfait, pour vous montrer pourquoi nous ne devrions pas utiliser Chrome DevTools pour copier XPath. Copier une valeur XPath fonctionne parfois mais ce n'est pas fiable. Par conséquent, il est préférable de ne pas faire un clic droit, Copier, et Copier XPath puis Coller XPath. Remarquez la valeur de l'id.
Maintenant, je vais recharger la page. Copier XPath à nouveau puis coller XPath. Voyez-vous comment la valeur a changé après le rechargement de la page ? C'est ce qu'on appelle une valeur d'id dynamique où la valeur change à chaque fois. Cette vidéo vous montrera comment gérer les valeurs dynamiques en utilisant les fonctions XPath.
Fonctions XPath
Il existe 4 types de fonctions XPath. Sur le site d'Oracle. Nous voyons Ensemble de nœuds, Chaîne, Booléen et Nombre. Notre focus sera sur les fonctions de chaîne. Dans notre feuille de triche, je les appelle Correspondance de motif partiel car tout ce que nous devons faire est de faire correspondre une partie de la valeur de l'attribut. J'allais démontrer 3 fonctions mais je vais retirer ends-with puis démontrer starts-with et contains.
Retour à notre AUT pour la fonction starts-with. Nous écrivons 2 barres obliques, le nom de la balise est p, crochets d'ouverture et de fermeture, starts-with, parenthèses d'ouverture et de fermeture, symbole @, le nom de l'attribut est id, virgule, 2 apostrophes, puis écrire ce avec quoi la valeur commence. La valeur commence par description donc écrivons description entre les deux guillemets. Bingo, le voilà. Nous pouvons également remplacer starts-with et utiliser la fonction suivante contains. Les deux fonctions fonctionneront car la valeur commence par description et contient également description.
Retirez starts-with puis ajoutez contains. Avez-vous remarqué que nous avons trouvé 1 sur 2 ? 1 sur 2 n'est pas suffisant si nous cherchons uniquement à vérifier la note sous le nom d'utilisateur. Les deux éléments se ressemblent presque. Comment trouvons-nous 1 sur 1 lorsque les deux éléments ont p comme tagName, un attribut de classe avec une valeur de note, et une valeur d'id dynamique ?
Rappelez-vous de la session précédente, nous avons utilisé XPath avec un opérateur logique ET. Regardons les deux WebElements. Une note fait référence au nom d'utilisateur et l'autre note fait référence à l'adresse e-mail. Nous pouvons utiliser un mot ou nous pouvons utiliser une phrase de la note. À l'intérieur des crochets, nous écrivons et contains, 2 parenthèses, nous écrivons un point, virgule, 2 apostrophes, dans les guillemets, nous pouvons écrire la phrase complète Cela sera votre nom d'utilisateur et ainsi de suite. Maintenant, nous avons 1 sur 1. Cependant, je préfère utiliser un mot unique comme nom d'utilisateur et nous avons toujours 1 sur 1.
Cette requête demande de trouver "une balise p qui commence par un attribut id consistant en une valeur de description et contient le texte nom d'utilisateur". Nous pouvons également remplacer le point par la fonction text. Cependant, il y a des cas où le texte ne fonctionnera pas. Je vais créer une vidéo expliquant la différence entre l'utilisation d'une valeur XPath avec un point et l'utilisation de text. Nous voyons toujours 1 sur 1. Si vous choisissez de ne pas écrire le mot et, vous pouvez le remplacer par des crochets.
Allons dans Outils QA et continuons avec une syntaxe différente pour la fonction text. Inspectons le prénom. Nous voyons un nom de balise strong mais ne voyons aucun attribut. Écrivons 2 barres obliques, strong, les deux crochets, text, 2 parenthèses, égal, 2 apostrophes, Prénom, et bingo. Nous avons trouvé notre élément. C'est tout pour les fonctions XPath.
Ensuite, ce sont les axes XPath.
#SeleniumTraining #XPathFunctions #SeleniumWebDriver #SeleniumAutomation