Mam następującą strukturę HTML: próbuję zbudować solidną metodę wyodrębniania drugiego elementu skrótu koloru, ponieważ będzie wiele takich tagów w 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>
Próbuję wyodrębnić drugi element td „Color Digest”, który ma zdekodowaną wartość.
Napisałem następującą ścieżkę xpath, ale zamiast uzyskać drugą, nie otrzymuję drugiego elementu td.
//td[text() = ' Color Digest ']/following-sibling::td[2]
A kiedy zmieniam to na td [2] na td [1], otrzymuję oba elementy.
Możesz przejść do identyfikacji listy elementów za pomocą xPath:
W ten sposób otrzymasz listę dwóch elementów, a następnie możesz użyć drugiego elementu jako zamierzonego. Na przykład:
List<WebElement> elements = driver.findElements(By.xpath("//td[text() = ' Color Digest ']/following-sibling::td[1]"))
Teraz możesz użyć drugiego elementu jako zamierzonego elementu, czyli elementów.get (1)
źródło
/html/body/table/tbody/tr[9]/td[1]
W przeglądarce Chrome (prawdopodobnie również Safari) możesz sprawdzić element, a następnie kliknąć prawym przyciskiem myszy tag, dla którego chcesz uzyskać ścieżkę xpath, a następnie skopiować ścieżkę xpath, aby wybrać ten element.
źródło