Ich suche so etwas wie:
getElementByXpath(//html[1]/body[1]/div[1]).innerHTML
Ich muss das innerHTML von Elementen mit JS abrufen (um das in Selenium WebDriver / Java zu verwenden, da WebDriver es selbst nicht finden kann), aber wie?
Ich könnte das ID-Attribut verwenden, aber nicht alle Elemente haben das ID-Attribut.
[FEST]
Ich benutze jsoup, um es in Java zu erledigen. Das funktioniert für meine Bedürfnisse.
html
undbody
überflüssig, da ein DIV ein Nachkomme von BODY sein muss (unmittelbar oder tiefer) und BODY ein Kind von HTML sein muss. Vorausgesetzt, es gibt keine anderen DIV-Elemente im Dokument,//DIV[1]
sollte dies funktionieren (obwohl ich hübsch bin rostig auf XPath-Ausdrücken). Das DOM-Äquivalent istdocument.getElementsByTagName('div')[1]
(oder vielleicht0
).Antworten:
Sie können verwenden
document.evaluate
:Es ist w3-standardisiert und vollständig dokumentiert: https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate
https://gist.github.com/yckart/6351935
Es gibt auch eine großartige Einführung in das Mozilla-Entwicklernetzwerk: https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript#document.evaluate
Alternative Version mit
XPathEvaluator
:Code-Snippet anzeigen
quelle
XPathResult.FIRST_ORDERED_NODE_TYPE === 9
developer.mozilla.org/en-US/docs/…In Chrome Dev Tools können Sie Folgendes ausführen:
quelle
Für etwas wie $ x von der Chrome-Befehlszeilen-API (um mehrere Elemente auszuwählen) versuchen Sie:
Diese MDN-Übersicht hat geholfen: https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript
quelle
Sie können das document.evaluate von Javascript verwenden , um einen XPath-Ausdruck im DOM auszuführen. Ich denke, es wird auf die eine oder andere Weise in Browsern zurück zu IE 6 unterstützt.
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate
IE unterstützt stattdessen selectNodes .
MSDN: https://msdn.microsoft.com/en-us/library/ms754523(v=vs.85).aspx
quelle
Angenommen, Ihr Ziel ist es, Ihre xpath-Abfragen für Bildschirmkarten zu entwickeln und zu testen. Verwenden Sie dann entweder die Entwicklertools von Chrome . Auf diese Weise können Sie die xpath-Abfrage ausführen, um die Übereinstimmungen anzuzeigen. In Firefox> 9 können Sie dasselbe mit der Web Developer Tools-Konsole tun . In früheren Versionen verwenden x-path-finder oder Firebug .
quelle
Stellen Sie sicher, dass Sie den richtigen Locator dafür verwenden.
quelle
quelle
quelle
Um auf den Punkt zu gelangen, können Sie einfach xapth verwenden. Die genaue und einfache Möglichkeit, dies mit dem folgenden Code zu tun. Bitte versuchen Sie, Feedback zu geben. Vielen Dank.
Weitere Lesungen - https://medium.com/@smeesheady/webdriver-javascriptexecutor-interact-with-elements-and-open-and-handle-multiple-tabs-and-get-url-dcfda49bfa0f
quelle