Estoy usando selenio para probar mi aplicación web y puedo encontrar etiquetas exitosamente usando By.xpath
. Sin embargo, de vez en cuando necesito encontrar nodos secundarios dentro de ese nodo.Localizando nodos secundarios de WebElements en selenio
Ejemplo:
<div id="a">
<div>
<span />
<input />
</div>
</div>
que puedo hacer:
WebElement divA = driver.findElement(By.xpath("//div[@id='a']"))
Pero ahora tengo que encontrar la entrada, por lo que podía hacer:
driver.findElement(By.xpath("//div[@id='a']//input"))
Sin embargo en ese momento de código I solo tengo divA
, no es su xpath más ... Me gustaría hacer algo como esto:
WebElement input = driver.findElement(divA, By.xpath("//input"));
Pero tal función no existe. ¿Puedo hacer esto de todos modos?
BTW: A veces necesito encontrar un DIV
que tenga un cierto nodo descendente. ¿Cómo puedo preguntar en xpath por "la etiqueta div que contiene un lapso con el texto 'hola mundo'"?
Muchas gracias. No sabía aún, que podría usar xpaths dentro de '[]' dentro de xpaths ... –
la última versión de la especificación XPath se puede encontrar [aquí] (https://www.w3.org/TR/xpath- 3/# abreviación) –
¡simplemente hermoso! – angryip