Tengo la siguiente estructura HTML: estoy tratando de crear un método sólido para extraer el segundo elemento de resumen de color, ya que habrá muchas de estas etiquetas dentro del DOM.
<table>
<tbody>
<tr bgcolor="#AAAAAA">
<tr>
<tr>
<tr>
<tr>
<td>Color Digest </td>
<td>AgArAQICGQMVBBwTIRQHIwg0GUMURAZTBWQJcwV0AoEDAQ </td>
</tr>
<tr>
<td>Color Digest </td>
<td>2,43,2,25,21,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, </td>
</tr>
</tbody>
</table>
Estoy tratando de extraer el segundo elemento td "Color Digest" que tiene el valor decodificado.
Escribí el siguiente xpath pero en lugar de obtener el segundo, no obtengo el segundo elemento td.
//td[text() = ' Color Digest ']/following-sibling::td[2]
Y cuando lo cambio a td [2] a td [1] obtengo ambos elementos.
Puede ir a identificar una lista de elementos con xPath:
Esto le dará una lista de dos elementos, de los que puede usar el segundo elemento como el que desea. Por ejemplo:
List<WebElement> elements = driver.findElements(By.xpath("//td[text() = ' Color Digest ']/following-sibling::td[1]"))
Ahora, puede usar el segundo elemento como su elemento deseado, que es elements.get (1)
fuente
/html/body/table/tbody/tr[9]/td[1]
En Chrome (posiblemente Safari también) puede inspeccionar un elemento, luego hacer clic derecho en la etiqueta para la que desea obtener el xpath, luego puede copiar el xpath para seleccionar ese elemento.
fuente