나는 꽤 오랫동안이 작업을 해오 고 있으며 stackoverflow 또는 Xpath로 직접 실험 한 결과를 찾지 못했습니다. 나는 아주 경험이 없기 때문에 이것이 단순한 문제라면 나는 동행한다. 그러나 나는 어떤 도움을 정말로 감사 할 것이다.체크 박스 요소에 대한 Xpath는 값 옆에있는 레이블 요소를 찾습니다.
Wicket을 사용하는 웹 응용 프로그램을 테스트하기 위해 Selenium과 협력하고 있습니다. 각각의 라벨과 관련된 체크 박스에 Xpath가 필요합니다. 왜냐하면 확인란에 표시된 값을 입력 할 수 있어야하고 체크 상자 ID가 값과 일치하지 않으므로 "001"과 같은 레이블 텍스트를 기반으로 관련 확인란을 찾을 수 있어야합니다.
아래의 모형은 확인란과 해당 레이블을 보여줍니다.
대응 HTML 아래 표시이고;
<span wicket:id="excludeDepotCheckBox" id="excludeDepotCheckBox5">
<input name="adminPreferenceSection:excludeDepotCheckBox" type="checkbox" value="0" id="excludeDepotCheckBox5-adminPreferenceSection:excludeDepotCheckBox_0">
<label for="excludeDepotCheckBox5-adminPreferenceSection:excludeDepotCheckBox_0">001</label>
<br>
<input name="adminPreferenceSection:excludeDepotCheckBox" type="checkbox" value="1" id="excludeDepotCheckBox5-adminPreferenceSection:excludeDepotCheckBox_1">
<label for="excludeDepotCheckBox5-adminPreferenceSection:excludeDepotCheckBox_1">009</label>
<br>
</span>
I는 직면하는 또 다른 문제는 XPath는 그것이 특정 있어야하므로 체크 박스 (3 개) 다른 그룹이 동일한 값으로 페이지가있는 것처럼 HTML에 나타낸 범위 안에 있다는 사실을 포함해야한다는 예 : 각 범위에 대해
id="excludeDepotCheckBox5"
다음 Xpath를 사용해 보았습니다.
//span[@id='excludeDepotCheckBox5' and contains(., '009')]"
"//*[@id='excludeDepotCheckBox5' and ./label/text()='009']/preceding-sibling::*[@name='adminPreferenceSection:excludeDepotCheckBox']
//*[@id='excludeDepotCheckBox5' and ./label/text()='009']/preceding-sibling::input[1]"
다시 간단한 구문/이해 문제가 있지만 나는 정말로 도움이된다고 생각한다.
이것은 훌륭한 답변이며 완벽하게 작동합니다. 감사합니다. 감사합니다. – Laura