Java에서 Selenium WebDriver를 사용하여 웹 사이트 테스트 프로그램을 작성하는 과정에서 동료의 다소 복잡한 HTML을 탐색하고 있습니다. 상황은 지금까지 잘 진행되고 있습니다 (이미 유용한 도움말을 발견하여 사용했습니다).하지만이 HTML에서 특정 요소를 타겟팅하는 방법에 대해 고민하고 있습니다.xpath를 사용하여 Selenium으로 HTML 요소 타겟팅하기
<tr>
<td valign="top" class="col_1">
<a target="content" href="link_text_omitted" class="no">RLS DISABILITY
</a>
</td>
<td class="col_2">
<a target="asdf" href="https://link_text_omitted">
</a>
</td>
<td class="col_3">
</td>
<td class="col_4">$0.00 </td>
<td class="col_5">180/180- $3300.00</td>
<td class="col_6">
<a target="content" href="link_text_omitted" class="ecurrent">$43.23
</a>
</td>
</tr>
개인 정보 보호를 위해 위의 URL을 삭제했습니다. 페이지에 1233 개의 다른 <tr>
요소가 있지만 형식은 같지만 텍스트 값과 달러 금액은 각각 (col_1, col_4, col_6)
입니다. [td class="col_6"]
에서 $ 43.23의 텍스트와 [td class="col_4"]
의 $ 0.00에 액세스해야합니다. 페이지에 다른 요소가 있기 때문에 [a class = "ecurrent"]뿐만 아니라 [td class="col_6"]
이기도하므로 클래스 이름으로 선택할 수는 없습니다.
다른 유사한 요소와 관련하여이 요소의 실제 식별 특성은 [td class="col_1"]
의 "RLS DISABILITY"텍스트와 생략 된 URL의 일부 텍스트입니다.
나는 그것을 얻기 위해 몇 가지 복잡한 xpath 문자열을 사용해 왔지만, 내가 원하는 것을 얻을 수는 없다. 내가 처음 [TD]를 선택 생각
WebElement RLSDisabilityName = driver.findElement(By.xpath("//td[a/text()='RLS DISABILITY']"));
(그러나 나는 확실하지 않다) : 지금까지가 가장 가까운 것은 이것이다.
By.partialText를 사용하여 $ 43.23으로 [a] 태그를 선택할 수 있다고 생각하지만 부분 텍스트는 꽤 긴 URL 조각이며 다른 유사한 웹 사이트에서이 휴대용을 사용하고 싶습니다. .
모든 의견을 크게 환영합니다. :)
요소가 어떤 행에 있는지 알고 계십니까? 제 말은 첫 번째/두 번째'tr' 태그 안에 항상 들어 있습니까? – donfuxx
코드에서 일부 ID 속성을 추가하도록 동료에게 설득 해보세요. – donfuxx