This shows you the differences between two versions of the page.
es:identificacion_de_objetos_por_xpath [2020/10/22 11:08] montse [Identificación de objetos por XPath] |
es:identificacion_de_objetos_por_xpath [2024/12/05 09:01] (current) montse |
||
---|---|---|---|
Line 3: | Line 3: | ||
En las siguientes líneas, el usuario será capaz de encontrar pistas y consejos sobre como identificar objetos vía Xpath. | En las siguientes líneas, el usuario será capaz de encontrar pistas y consejos sobre como identificar objetos vía Xpath. | ||
- | Xpath es una manera de identificar objetos en base a la ruta a la que el objeto esta anidado. Como ejemplo: el Xpath “/html/body/div[2]/div/div/footer/section[3]/div/ul/li[3]/a” buscará en el cuerpo del html un elemento “div[2]” luego buscará un div, tras otro, un footer, y así hasta el final. | + | Xpath es una manera de identificar objetos en base a la ruta a la que el objeto esta anidado.\\ \\ Como ejemplo: el Xpath:\\ \\ “/html/body/div[2]/div/div/footer/section[3]/div/ul/li[3]/a” \\ \\ buscará en el cuerpo del html un elemento “div[2]” luego buscará un div, tras otro, un footer, y así hasta el final.\\ \\ Hay básicamente dos formas de usar un Xpath: usando el Xpath entero o buscando solo un fragmento (para este último en vez de abrirse con / se abre con “/ /”). Como siempre, en pruebas, es bastante importante tener claro que el Xpath que se escribe es único y representa solamente un elemento. //Como recordatorio, el ID del atributo es único//. |
- | + | ||
- | Hay básicamente dos formas de usar un Xpath: usando el Xpath entero o buscando solo un fragmento (para este último en vez de abrirse con / se abre con “/ /”). Como siempre, en pruebas, es bastante importante tener claro que el Xpath que se escribe es único y representa solamente un elemento. //Como recordatorio, el ID del atributo es único//. | + | |
Igualmente, dado que esto puede volverse demasiado largo, hay algunas maneras para acortarlo, para esto necesitamos saber su sintáxis:\\ \\ | Igualmente, dado que esto puede volverse demasiado largo, hay algunas maneras para acortarlo, para esto necesitamos saber su sintáxis:\\ \\ | ||
^Expresión XPath ^Descripción ^Ejemplo de Expresión ^ Ejemplo de Significado ^ | ^Expresión XPath ^Descripción ^Ejemplo de Expresión ^ Ejemplo de Significado ^ | ||
- | |/| Selección del nodo de ruta. |(…)/b/a| Elemento ”a” hijo de ”b”, hijo de ”(…)“.| | + | |/| Selección del nodo de ruta. |(…)/b/a| Elemento ”//a//” hijo de ”//b//”, hijo de ”//(…)//“.| |
- | |/ /| Selecciona cualquier nodo del nodo actual que coincide con la selección no importa donde esté.| b / / a(…)| Todos los elementos ”a(…)” hijos de ”b”.| | + | |/ /| Selecciona cualquier nodo del nodo actual que coincide con la selección no importa donde esté.| b / / a(…)| Todos los elementos ”//a(…)//” hijos de ”//b//”.| |
- | |*| Coincide con cualquier nodo.| b / * / a | Cualquier elemento ”a” del que es nieto de ”b“.| | + | |*| Coincide con cualquier nodo.| b / * / a | Cualquier elemento ”//a//” del que es nieto de ”//b//“.| |
- | |.| Selecciona el nodo actual. | ./ /de | Cualquier elemento ”de” que está dentro de uno o más niveles del nodo actual.| | + | |.| Selecciona el nodo actual. | ./ /de | Cualquier elemento ”//de//” que está dentro de uno o más niveles del nodo actual.| |
- | |..| Selecciona el padre del nodo actual. | abc[../mg] | Cualquier elemento ”abc” que tiene un hermano ”mg”.| | + | |..| Selecciona el padre del nodo actual. | abc[../mg] | Cualquier elemento ”//abc//” que tiene un hermano ”//mg//”.| |
- | | @| Selecciona atributo. | a[@bcd] | Elemento ”a” con un atributo ”bcd”.| | + | | @| Selecciona atributo. | a[@bcd] | Elemento ”//a//” con un atributo ”//bcd//”.| |
- | | @ =| Selecciona atributos con valor. | a[@bcd=“hola”] | Elemento ”a” con”bcd” como atributo igual a hola.| | + | | @ =| Selecciona atributos con valor. | a[@bcd=“hola”] | Elemento ”//a//” con ”//bcd//” como atributo igual a hola.| |
- | | @*| Coincide con cualquier atributo. | a[@*=“hola”] | Elemento ”a” con cualquier atributo igual a hola.| | + | | @*| Coincide con cualquier atributo. | a[@*=“hola”] | Elemento ”//a//” con cualquier atributo igual a //hola//.| |
- | | last()| Coincide con el ultimo elemento. | b / a[last()] | Ultimo elemento ”a” hijo de ”b“.| | + | | last()| Coincide con el ultimo elemento. | b / a[last()] | Ultimo elemento ”//a//” hijo de ”//b//“.| |
- | | [] | Elemento que contiene algo. | c[hello] / b[@a] |Elemento ”b” elemento que contiene un atributo ”a” hijo de atributo ”c” que contiene el elemento hello.| | + | | [] | Elemento que contiene algo. | c[hello] / b[@a] |Elemento ”//b//” elemento que contiene un atributo ”//a//” hijo de atributo ”//c//” que contiene el elemento hello.| |
- | | [][]| Elemento que contiene dos o mas cosas (se añaden[] por cada uno). | a[@b][@c] | Elemento ”a” con **los dos atributos** ”b” y ”c”. | | + | | [][]| Elemento que contiene dos o mas cosas (se añaden[] por cada uno). | a[@b][@c] | Elemento ”//a//” con **los dos atributos** ”//b//” y ”//c//”. | |
- | | [n]| El element “n” en un array. | b/a[3] | Tercer elemento ”a” hijo de ”b“.| | + | | [n]| El elemento “n” en un array. | b/a[3] | Tercer elemento ”//a//” hijo de ”//b//“.| |
- | | !=| Desigual. | a[@bcd!=“hola”] | Elemento ”a” con atributo ”bcd” no igual a hola.| | + | | !=| Desigual. | a[@bcd!=“hola”] | Elemento ”//a//” con atributo ”//bcd//” no igual a //hola//.| |
- | | last() | Último elemento. | b/a[last()] | El último ”a” hijo de ”b“.| | + | | last() | Último elemento. | b/a[last()] | El último ”//a//” hijo de ”//b//“.| |
- | | () | Grupo de operaciones para establecer prioridades. | (de/mg)[3] | El tercer set entero de ”de/mg“.| | + | | () | Grupo de operaciones para establecer prioridades. | (de/mg)[3] | El tercer set entero de ”//de/mg//“.| |
- | | and| Uso lógico del AND. | a[b and c] | Elemento ”a” que contiene **ambos** ”b” y ”c“.| | + | | and| Uso lógico del AND. | a[b and c] | Elemento ”//a//” que contiene **ambos** ”//b//” y ”//c//“.| |
- | | or| Uso lógico del OR . | de[@mg or @dus] | Elemento ”de” que contiene los atributos ”mg” o ”dus”.| | + | | or| Uso lógico del OR . | de[@mg or @dus] | Elemento ”//de//” que contiene los atributos ”//mg//” o ”//dus//”.| |
- | | contains()| Coincide con todos los elementos que parcialmente contienen lo que este dentro de los “()”. | de[contains(.,'click here')] | Elementos ”de” que contienen ”click here“.| | + | | contains()| Coincide con todos los elementos que parcialmente contienen lo que este dentro de los “()”. | de[contains(.,'click here')] | Elementos ”//de//” que contienen ”//click here//“.| |
- | | starts-with() | Coincide todos los elementos que estén contenidos en “()”. | de[starts-with(@id,'id-name')] | Elementos ”de“ que empiezan por ”id-name(…)“.| | + | | starts-with() | Coincide todos los elementos que estén contenidos en “()”. | de[starts-with(@id,'id-name')] | Elementos ”//de//“ que empiezan por ”//id-name(…)//“.| |
- | | [ .=''] | Coincide todos los elementos dentro de un string. | de[.='string 1 of 6'] | Elementos ”de” con el string ”string 1 of 6“.| | + | | [ .=''] | Coincide todos los elementos dentro de un string. | de[.='string 1 of 6'] | Elementos ”//de//” con el string ”//string 1 of 6//“.| |
- | | normalize-space() | Coincide los elementos con un string ignorando espacios en blanco. | de[normalize-space()='mg'] | Elementos ”de” con el string ”mg” o ” mg” o ”mg ” o ” mg “.| | + | | normalize-space() | Coincide los elementos con un string ignorando espacios en blanco. | de[normalize-space()='mg'] | Elementos ”//de//” con el string ”//mg//” o ”// mg//” o ”//mg // ” o ”// mg // “.| |
- | | text() | Selecciona los elementos con un texto especifico dentro. | de[text()=“mg”] | Elementos ”de” con string ”mg” en el campo de texto.| | + | | text() | Selecciona los elementos con un texto especifico dentro. | de[text()=“mg”] | Elementos ”//de//” con string ”//mg//” en el campo de texto.| |
- | | [ / @ ] | Selecciona elementos que tienes algún hijo especifico. | / / de[mg/@attr1='nrw'] | Elementos ”de” con ”mg” hijo de ”attr1” igual a ”nrw“.| | + | | [ / @ ] | Selecciona elementos que tienes algún hijo especifico. | / / de[mg/@attr1='nrw'] | Elementos ”//de//” con ”//mg//” hijo de ”//attr1//” igual a ”//nrw//“.| |
\\ | \\ |