code

XPath :: 다음 형제 가져 오기

codestyles 2020. 11. 18. 09:06
반응형

XPath :: 다음 형제 가져 오기


다음과 같은 HTML 구조가 있습니다. 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>

디코딩 된 값이있는 두 번째 "Color Digest"td 요소를 추출하려고합니다.

나는 다음 xpath를 작성했지만 두 번째를 얻는 대신 두 번째 td 요소를 얻지 못하고 있습니다.

//td[text() = ' Color Digest ']/following-sibling::td[2]

그리고 그것을 td [2]에서 td [1]로 변경하면 두 요소를 모두 얻습니다.


'Color Digest'와 같은 td를 가진 두 번째 tr을 찾아야합니다. 그런 다음 tr에서 첫 번째 td의 다음 형제 또는 두 번째 td를 살펴 봐야합니다.

다음을 시도하십시오.

//tr[td='Color Digest'][2]/td/following-sibling::td[1]

또는

//tr[td='Color Digest'][2]/td[2]

http://www.xpathtester.com/saved/76bb0bca-1896-43b7-8312-54f924a98a89


xPath로 요소 목록을 식별 할 수 있습니다.

//td[text() = ' Color Digest ']/following-sibling::td[1]

이렇게하면 두 번째 요소를 의도 한대로 사용할 수있는 것보다 두 가지 요소 목록이 제공됩니다. 예를 들면 :

List<WebElement> elements = driver.findElements(By.xpath("//td[text() = ' Color Digest ']/following-sibling::td[1]"))

이제 두 번째 요소를 원하는 요소로 사용할 수 있습니다. 바로 elements.get (1)


/html/body/table/tbody/tr[9]/td[1]

Chrome (사파리도 가능)에서는 요소를 검사 한 다음 xpath를 가져 오려는 태그를 마우스 오른쪽 버튼으로 클릭 한 다음 xpath를 복사하여 해당 요소를 선택할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/11657223/xpath-get-following-sibling

반응형