Ma requête réelle est, je veux récupérer la valeur de texte interne HTML à l'aide de sélecteur CSS ou XPath. Je suis capable de l'accomplir en utilisant Document.getElementyID mais n'utilisez pas de sélecteurs, mais je ne peux qu'à imprimer l'élément de balise mais pas le texte de celui-ci.
pour ex: p> à partir du HTML ci-dessus, je souhaite imprimer 1,603,35 strong> en utilisant p> CSS ou P> LI>
xpath p> li>
ul> Remarque: j'ai déjà perdu le forum mais je n'ai pas pu trouver la solution requise. p> p>
3 Réponses :
Vous devriez pouvoir utiliser la fonction XPath version 2 Correspondances CODE> Fonction:
//div[matches(text(), 'Hello ?\w+ What would you like to do today \w+')]
Java sélénium (exemple XPath):
driver.find_element_by_css_selector("span#lastPrice").get_attribute("innerText")
C'est JavaScript, pas de requête CSS / XPath. Je dis que c'est JavaScript parce que [0] .innertext ou [0] .innerhtml utilise à la suite du sélecteur XPath. Donc, je regarde le même résultat dans les sélecteurs XPath / CSS uniquement. Quelque chose comme, Kesh qui a déjà commenté mais quand j'ai essayé ça ne fonctionne pas :(
Je ne sais pas quel outil et quel cadre vous utilisez, mais vous devriez être capable de le faire avec `.getatTatribute (" innertext ")".
Mise à jour de la réponse avec les options Java et Python à l'aide de XPath / CSS.
ma requête n'est pas liée au sélénium cependant
d'accord. Que diriez-vous, // span [@ id = 'lastprice'] / @ innertext code>? Ce serait formidable quel outil vous utilisez pour exécuter ce script sur.
Ceci est la solution de travail de la console chrome. $ x ("// span [@ id = 'lastprice'] / texte ()"). foreach (fonction (el) {co nsole.log (el)}) code>
Cette expression xpath avec ce XML bien formé P> résultat p> check in http: / /www.utilisation-online.info/xpath/?save=07D6E884-4F7E-46CC-9AAF50-904E6A440F50-XPATH P> P>
Il travaille avec le lien que vous avez fourni, la chose exacte que je cherche et j'étais heureuse mais j'étais heureuse mais, mon joyeux n'a pas perdu longtemps, :( J'ai essayé sur la console chromée, et cela n'a pas fonctionné là-bas, la valeur de retour est une valeur de retour. String vide. Mais on dirait que vous avez compris ma requête ce que je cherche, essayez de le faire fonctionner sur la console chrome, j'essaie aussi de ma fin. Merci d'avance.
Merci @ Alejandro: Cela fonctionne sur la console chrome. Lorsque j'utilise la suite ("String (// Span [@ Id = 'Stad))") ")") ") ou (" String (// * [@ * [ID =' LastPrice ']) ")") " /' ne fonctionne pas,
Comme ça?
Document.QuerySelector ('# DernierPrice'). TextContent Code>
Vous avez raison, en utilisant l'objet de document que je peux, mais je veux lire uniquement en utilisant CSS / XPath, s'il vous plaît. Peut-être, comme "$$" ou '$ x'
Je suppose que je ne comprends pas ce que vous voulez dire par
à l'aide de sélecteur CSS code>, puisqu'un commentaire utilise un sélecteur ... Je reçois la partie XPath mais pas la partie CSS, pourriez-vous expliquer?
Pouvez-vous s'il vous plaît partager le code que vous avez essayé afin que nous puissions obtenir plus de contexte?
J'ai essayé sur la console chromée: x x ("// * [@ @ class = 'actif'] // span [@ id = 'lastprice']") et aussi x ("// * [@ class = 'actif '] // s'étend [@ id =' lastprice '] / texte () "), puis x x (" // * [@ @ id =' lastprice '] ")
Ok @fayazmd je l'ai eu, pouvez-vous essayer cela et me dire si cela fonctionne pour vous? $ x ("// * [@ @ class = 'actif'] // span [@ id = 'lastprice']") [0] .Text Tente
@Jamesgarcia: Je pense que nous sommes proches, car, après avoir assuré qu'il fonctionne sur la console chromée, j'ai copié et collé dans mon travail de projet réel, où il ne faut pas analyser. Comme j'ai compris que l'erreur est parce que dans mon projet Nous n'utilisons pas '[0] .textContent' dans le cadre de la requête XPath elle-même, c'est-à-dire que ma fonction au travail ne analyse pas JavaScript mais comprend uniquement les sélecteurs CSS / XPath. Par conséquent, le sélecteur XPath ou CSS ne doit pas être un tableau basé sur une matrice (qui est JavaScript), la requête doit être dans un sélecteur de ligne unique (avec des guillemets ou des parenthèses)