O camiño de XPATH
Para uso con selenium (e outras herbas)
Curso de Especialización en Intelixencia Artificial e Big Data
Aviso: Pendente de rematar
Índice
Que é?
Conceptos elementais
Selectores
Que é XPATH?
- "Linguaxe" empregado para localizar nodos nun documento XML
- HTML "é un subtipo de" XML
- Podes facer probas en http://xpather.com/
Conceptos elementais
En XPath temos 7 clases de nodos:
- Elemento
- Atributo
- Texto
- Espazo de nomes (namespace)
- Instrucción de procesamento
- Comentario
- Nodos raíz (root)
- Nodo raíz (root) → <html>
- Nodos → <head>, <body>
- Atributo → id="resultados2023"
- Valores atómicos → resultados2023, Cabecera 1, Cabecera 2, Valor 1, Valor 2
Relacións entre nodos
- Pais
- Fillos
- Irmáns
- Ascendentes/Ancestros
- Descendentes/Estirpe
- <table> → Pai: de <thead>, <tbody>
- <thead>, <tbody> → Fillos de: <table>
- <th> e <th> → Irmáns (colgan do mesmo <tr>)
- Cales son os ancentros de <th> ?
- <tr>, <thead>, <table> ... e de ser HTML estándar como mínimo tamén: <body> e <html>.
- Cales son os descendentes de <table>?
- Todos os tags que colgan de table (que están dentro).
Selector barra / Ruta completa
- Como se fose unha ruta absoluta a un arquivo.
- /html → Selecciona todo dentro de: <html></html>.
- /html/body → Dentro do tag: <html>, o que está dentro de: <body>.
/html/body/table → Selecciona todas as táboas dentro de: <body>.
- /html/body/table[1] → Selecciona a primeira táboa dentro de: <body>.
- Cómo seleccionarías Col1?
- /html/body/table/thead/tr/th[1]
Selector dobre barra // Ruta relativa
- Elimina a necesidade de especificar toda a ruta
- Selecciona todo aquelo que cumpre un patrón
Selecciona table...
//table
Selecciona la primera fila de datos (valores)
//tr[2]/td
//table/tr[2]/td
Operador Asterisco * Todos os elementos
- Pódese empregar antes, no medio ou despois.
- Compatible co uso de resto de operadores.
- //*/*/table
- table/*/td
Qué se selecciona con...
*/*/*/*/*/td
Bibliografía
https://www.w3schools.com/xml/xpath_intro.asp
https://www.w3.org/TR/xpath/
http://www.zvon.org/comp/r/tut-XPath_1.html>
Jose Sánchez
“Errare humanum est, sed perseverare diabolicum”
Erros? / Errores? / Mistakes? →