Quiero obtener todas las etiquetas P que se encuentran dentro de la etiqueta div Solo quiero obtener el tamaño, así que probé esta línea de código

driver.findElements(By.xpath(".//*[@id='googleresults']/div/table[3]/tbody/tr/td/div")).size()

Obtuve este xpath de fireBug pero este código de línea me da 0

<document>
<html>
<head>
<body>
<div id="googleresults">
<div class="tab-container">
<!-- Please enter html code below. -->
<table cellspacing="0" cellpadding="0" border="0"/>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<table width="100%" cellspacing="0" cellpadding="0" border="0" bgcolor="#ffffff">
<!--tro2-->
<div>
<p class="g">
<br/>
<p class="g">
<br/>
<p class="g">
<br/>
<p class="g">
<br/>
<p class="g">
<br/>
<p class="g">
<br/>
<p class="g">
<br/>
<p class="g">
<br/>
<p class="g">
<br/>
<p class="g">
<br/>
</div>
<center>
<span class="p">
</div>
</div>
</body>
</html>
</document>
2
Hagar Hossam 24 dic. 2016 a las 11:32

3 respuestas

La mejor respuesta

Resultó que este div se encuentra dentro de un iframe, por lo que primero necesitaba enfocar el iframe y luego usar esta línea. Ahora está funcionando

El código para enfocarse en el iframe está abajo: driver.switchTo().frame(driver.findElement(By.id("iframeID")));

-1
Hagar Hossam 24 dic. 2016 a las 10:26

Utilice el siguiente XPath-

//div//p[@class='g'] para obtener todas las etiquetas <p>

Y este código proporcionará cómo pueden estar las etiquetas <p>

    List<WebElement> element=driver.findElements(By.xpath("//div//p[@class='g']"));
    System.out.println(element.size());
1
NarendraR 24 dic. 2016 a las 09:13

La mejor manera de obtener valores de cualquier etiqueta es buscar por nombre de etiqueta, en su caso debería ser así:

List<WebElement> element=driver.findElements(By.tagName("p")); 
System.out.println(element.size());
2
Maninder 24 dic. 2016 a las 10:13