que tienen una estructura de sitio que se ve algo como esto:¿Es HtmlUnit 2.8 getFirstByXPath diferente de HtmlUnit 1.14 getFirstByXPath?
<div class='main_container'>
<div class='item_container'>
<div class='body'>
<span class='item_name'>Item 1</span>
<span class='item_desc'>Desc 1</span>
</div>
</div>
<div class='item_container'>
<div class='body'>
<span class='item_name'>Item 2</span>
<span class='item_desc'>Desc 2</span>
</div>
</div>
...
</div><!--End of main_container-->
//Note: Some divs might not have <span @class='item_name'>Item N</span> or other elements inside the item_container
En HtmlUnit 1.14 si quiero conseguir todo nombre del artículo:
List<HtmlDivision> divs = (List<HtmlDivision>)page.getByXPath("//div[@class='item_container']");
for(HtmlDivision div:divs){
String name = ((HtmlElement)div.getFirstByXPath("//span[@class='item_name']")).asText();
System.out.println(name);
}
Salida:
Item 1
Item 2
...
Pero en HtmlUnit 2.8 cuando hago lo mismo que tengo.
Item 1
Item 1
...
¿Hay alguna solución a esto en HtmlUnit 2.8?
Javadoc para el método dice "evalúa la expresión XPath especificado desde este nodo, volviendo el primer elemento coincidente, o nulo si ningún nodo coincide con la expresión XPath especificada ". Entonces, ¿no debería buscar elementos dentro del nodo en el que se llama este método? – Viraj