Je cherche quelque chose comme:
getElementByXpath(//html[1]/body[1]/div[1]).innerHTML
J'ai besoin d'obtenir le innerHTML des éléments en utilisant JS (pour l'utiliser dans Selenium WebDriver / Java, car WebDriver ne le trouve pas lui-même), mais comment?
Je pourrais utiliser l'attribut ID, mais tous les éléments n'ont pas d'attribut ID.
[FIXÉ]
J'utilise jsoup pour le faire en Java. Cela fonctionne pour mes besoins.
html
etbody
sont superflus car un DIV doit être un descendant de BODY (immédiat ou plus profond) et BODY doit être un enfant de HTML, donc à condition qu'il n'y ait pas d'autres éléments DIV dans le document,//DIV[1]
devrait fonctionner (bien que je sois assez rouillé sur les expressions XPath). L'équivalent DOM estdocument.getElementsByTagName('div')[1]
(ou peut-être0
).Réponses:
Vous pouvez utiliser
document.evaluate
:Il est normalisé w3 et entièrement documenté: https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate
https://gist.github.com/yckart/6351935
Il y a aussi une excellente introduction sur le réseau de développeurs mozilla: https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript#document.evaluate
Version alternative, utilisant
XPathEvaluator
:Afficher l'extrait de code
la source
XPathResult.FIRST_ORDERED_NODE_TYPE === 9
developer.mozilla.org/en-US/docs/…Dans Chrome Dev Tools, vous pouvez exécuter les éléments suivants:
la source
Pour quelque chose comme $ x de l'API de ligne de commande Chrome (pour sélectionner plusieurs éléments), essayez:
Cette présentation MDN a aidé: https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript
la source
Vous pouvez utiliser le document.evaluate de javascript pour exécuter une expression XPath sur le DOM. Je pense qu'il est pris en charge d'une manière ou d'une autre dans les navigateurs de retour à IE 6.
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate
IE prend plutôt en charge selectNodes .
MSDN: https://msdn.microsoft.com/en-us/library/ms754523(v=vs.85).aspx
la source
En supposant que votre objectif est de développer et de tester vos requêtes xpath pour les cartes d'écran. Utilisez ensuite les outils de développement de Chrome . Cela vous permet d'exécuter la requête xpath pour afficher les correspondances. Ou dans Firefox> 9, vous pouvez faire la même chose avec la console Web Developer Tools . Dans les versions antérieures, utilisez x-path-finder ou Firebug .
la source
Assurez-vous que vous utilisez le bon localisateur pour cela.
la source
la source
la source
Pour aller droit au but, vous pouvez facilement utiliser xapth .La manière exacte et simple de le faire en utilisant le code ci-dessous. Veuillez essayer de fournir des commentaires .Merci.
Lectures supplémentaires - https://medium.com/@smeesheady/webdriver-javascriptexecutor-interact-with-elements-and-open-and-handle-multiple-tabs-and-get-url-dcfda49bfa0f
la source