Estoy buscando algo como:
getElementByXpath(//html[1]/body[1]/div[1]).innerHTML
Necesito obtener el innerHTML de elementos usando JS (para usar eso en Selenium WebDriver / Java, ya que WebDriver no puede encontrarlo por sí mismo), pero ¿cómo?
Podría usar el atributo ID, pero no todos los elementos tienen un atributo ID.
[FIJO]
Estoy usando jsoup para hacerlo en Java. Eso funciona para mis necesidades.
html
ybody
son superfluos ya que un DIV debe ser un descendiente de BODY (inmediato o más profundo) y BODY debe ser un hijo de HTML, por lo que siempre que no haya otros elementos DIV en el documento,//DIV[1]
debería funcionar (aunque soy bastante oxidado en expresiones XPath). El equivalente DOM esdocument.getElementsByTagName('div')[1]
(o tal vez0
).Respuestas:
Puedes usar
document.evaluate
:Está estandarizado con w3 y está completamente documentado: https://developer.mozilla.org/en-US/docs/Web/API/Document.evaluate
https://gist.github.com/yckart/6351935
También hay una gran introducción sobre la red de desarrolladores de mozilla: https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript#document.evaluate
Versión alternativa, usando
XPathEvaluator
:Mostrar fragmento de código
fuente
XPathResult.FIRST_ORDERED_NODE_TYPE === 9
developer.mozilla.org/en-US/docs/…En Chrome Dev Tools puedes ejecutar lo siguiente:
fuente
Para algo como $ x desde la línea de comandos de Chrome API (para seleccionar varios elementos) intente:
Esta descripción general de MDN ayudó a: https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript
fuente
Puede usar el documento.evaluate de javascript para ejecutar una expresión XPath en el DOM. Creo que es compatible de una forma u otra en los navegadores de vuelta a IE 6.
MDN: https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate
IE admite selectNodes en su lugar.
MSDN: https://msdn.microsoft.com/en-us/library/ms754523(v=vs.85).aspx
fuente
Asumiendo que su objetivo es desarrollar y probar sus consultas xpath para mapas de pantalla. Luego, use las herramientas de desarrollador de Chrome . Esto le permite ejecutar la consulta xpath para mostrar las coincidencias. O en Firefox> 9 puede hacer lo mismo con la consola de Herramientas para desarrolladores web . En versiones anteriores, usa x-path-finder o Firebug .
fuente
Asegúrese de estar utilizando el localizador adecuado para ello.
fuente
fuente
fuente
Para ir directo al grano, puede usar fácilmente xapth. La forma exacta y simple de hacerlo usando el código a continuación. Intente amablemente y envíe sus comentarios. Gracias.
Lecturas adicionales: https://medium.com/@smeesheady/webdriver-javascriptexecutor-interact-with-elements-and-open-and-handle-multiple-tabs-and-get-url-dcfda49bfa0f
fuente