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>

QR materiales

Jose Sánchez

Errare humanum est, sed perseverare diabolicum
Erros? / Errores? / Mistakes? →