Comment vérifier une expression XPath dans l'outil Chrome Developers ou Firebug de Firefox?

179

Comment puis-je vérifier mon XPath?

J'utilise l'outil Chrome Developers pour inspecter les éléments et former mon XPath. Je le vérifie à l'aide du plugin Chrome XPath Checker, mais il ne me donne pas toujours le résultat. Quelle est la meilleure façon de vérifier mon XPath.

J'ai également essayé d'utiliser Firebug pour inspecter le bogue et d'utiliser FirePath pour vérifier. Mais Firepath vérifie-t-il également XPath.

Ma dernière option serait d'utiliser le Selenium WebDriver pour confirmer mon XPath.

utilisateur3448242
la source

Réponses:

367

Chrome

Cela peut être réalisé par trois approches différentes (voir mon article de blog ici pour plus de détails):

  • Rechercher dans le Elementspanneau comme ci-dessous
  • Exécuter $x()et $$()dans le Consolepanneau, comme indiqué dans la réponse de Lawrence
  • Les extensions tierces (pas vraiment nécessaires dans la plupart des cas, pourraient être excessives)

Voici comment vous recherchez XPath dans le Elementspanneau:

  1. Appuyez F12pour ouvrir l'outil de développement Chrome
  2. Dans le panneau "Éléments", appuyez sur Ctrl+F
  3. Dans la zone de recherche, tapez XPath ou CSS Selector, si des éléments sont trouvés, ils seront surlignés en jaune.

entrez la description de l'image ici

Firefox (depuis la version 75)

Depuis FF 75, il est possible d'utiliser une requête xpath brute sans expression xpath d'évaluation, voir la documentation pour plus d'informations.

Firefox (version antérieure 75)

  1. Sélectionnez «Console Web» dans le sous-menu Développeur Web du menu Firefox (ou le menu Outils si vous affichez la barre de menus ou êtes sous Mac OS X)
    ou appuyez sur le raccourci clavier Ctrl+ Shift+ K( Command+ Option+ Ksous OS X).
  2. Dans la ligne de commande en bas, utilisez ce qui suit:

    • $(): Renvoie le premier élément qui correspond. Équivaut à document.querySelector()ou appelle la $fonction dans la page, si elle existe.

    • $$(): Renvoie un tableau de nœuds DOM qui correspondent. C'est comme pour document.querySelectorAll(), mais renvoie un tableau au lieu d'un NodeList.

    • $x(): Évalue une expression XPath et renvoie un tableau de nœuds correspondants.


Firefox (version précédente 49)

  1. Installez Firebug
  2. Installez Firepath
  3. Appuyez F12pour ouvrir Firebug
  4. Passer au FirePathpanneau
  5. Dans la liste déroulante, sélectionnez XPathor CSS
  6. Tapez pour localiser

entrez la description de l'image ici

Yi Zeng
la source
2
Juste un avertissement sur XPath et les navigateurs, car cela conduit à beaucoup de confusion: stackoverflow.com/questions/18241029/…
Jens Erat
@JensErat: Vraiment un bon point. Pour les autres lisant ce commentaire, comme déjà mentionné dans cette question, Selenium n'est pas affecté car il pilote les navigateurs et utilise la même technologie d'évaluation JavaScript sous-jacente avec les outils de développement.
Yi Zeng
1
@ user1177636: Quel logiciel avez-vous utilisé pour générer ces GIF?
JacekM
Si vous avez également besoin d'un analyseur local pour XQuery, j'ai trouvé BaseX: basex.org/products
tuxErrante
4
La réponse a besoin d'une mise à jour pour Firefox. Malheureusement, Firebug est obsolète et a été fusionné dans les outils de développement. Actuellement, vous pouvez tester l'expression xpath dans la console, par exemple$("//div")
derloopkat
53

Vous pouvez ouvrir les DevTools dans Chrome avec CTRL+Isur Windows (ou CMD+IMac), et Firefox avec F12, puis sélectionnez l' Consoleonglet), et vérifier le XPath en tapant $x("your_xpath_here").
Cela renverra un tableau de valeurs correspondantes. S'il est vide, vous savez qu'il n'y a pas de correspondance sur la page.

Firefox v66 (avril 2019):

Firefox v66 console XPath

Chrome v69 (avril 2019):

Chrome v69 console XPath

Bosnjak
la source
1
Cette méthode n'est pas idéale mais il est bon de savoir car quelle que soit l'expression xpath que vous écrivez dans cette console, elle peut être exécutée par un JavascriptExecutor dans Selenium. Parfois, vous pouvez utiliser cela comme solution de contournement, peut-être lorsque les événements natifs de Firefox sont désactivés?
djangofan
1
@djangofan, que voulez-vous dire? Selon cette logique, ces deux réponses, bien que correctes, ne sont pas nécessaires selon votre logique.
Arran
1
@bosnjak en essayant ceci dans la console, $x("//input[@name='q']")j'ai euVM251:1 Uncaught TypeError: $x is not a function at <anonymous>:1:1
YasserKhalil
@YasserKhalil quel navigateur utilisez-vous, quelle version? Sur quel site faites-vous cela?
bosnjak
16

En utilisant Chrome ou Opera

sans aucun plug-in, sans écrire un seul caractère de syntaxe XPath

  1. faites un clic droit sur l'élément requis, puis "inspectez"
  2. faites un clic droit sur la balise d'élément en surbrillance, choisissez Copier> Copier Xpath.

;)

entrez la description de l'image ici

Eng. Samer T
la source
2
Pour Chrome, c'est la MEILLEURE solution que j'ai encore vue. Merci d'avoir partagé. Facilite la confirmation dans Chrome lorsque je ne souhaite pas utiliser Firefox.
Automatisation testée
J'ai utilisé cela à grand avantage. Mais le seul gros problème est que parfois le menu contextuel est désactivé ou écrasé. Ensuite, vous devez vous fier aux autres approches.
ouflak le
1
Cela ne répond pas vraiment à la question. Il ne vérifie pas un xpath existant, il en génère un. Celui que Chrome génère est souvent laid et très fragile lorsqu'il existe une bien meilleure solution.
Major Major
6

Voici l'extension ChroPath pour Chrome qui possède de nombreuses fonctionnalités avancées par rapport à FirePath - Veuillez suivre les étapes ci-dessous:

  1. Ouvrez le panneau devtools.
  2. Cliquez avec le bouton droit n'importe où sur la page Web.
  3. Cliquez sur Inspecter.
  4. Dans la partie droite de l'onglet Elements, cliquez sur l'onglet ChroPath.

Ici, vous obtiendrez le XPath / CSS et vous pourrez également le modifier et l'évaluer.

Télécharger l'addon

Créateur de SanjayKumar I ChroPath
la source
1
L'extension ChroPath fonctionne toujours en 2020. Merci. Une grande aide.
Bubbles le
1

Une autre option pour vérifier votre XPath est d'utiliser IDE sélénium.

  1. Installez Firefox Selenium IDE
  2. Ouvrez votre application dans FireFox et ouvrez l'IDE
  3. Dans IDE, sur une nouvelle ligne, collez votre xpath sur la cible et cliquez sur Rechercher. L'élément correspondant serait mis en évidence dans votre application

IDE sélénium

AJC
la source