문제

그것이 가능한 셀레늄을 평가하는 모든 요소할 수 있는 경기 일정 XPath?

예를 들어,내가 좋아하는지 여부를 평가 모든 체크 박스 이 확인 //input[type='checkbox']--문제는 가장 쉬운 방법은 당신의 요소가 반환됩니다.

도움이 되었습니까?

해결책

사용할 수 있습니다 getXpathCount 명령의 수를 결정하는 일치하는 요소입니다.할 수 있습을 통해 루프를 사용하여 증가 서로를 찾는 요소습니다.다음 Java(TestNG/JUnit)예 확인 확인란에 페이지를 확인:

int totalCheckboxes = session().getXpathCount("//input[@type='checkbox']").intValue();
for (int i = 1; i < totalCheckboxes+1; i++) {
    assertTrue(session().isChecked("//input[@type='checkbox'][" + i + "]"));
}

다른 팁

나은 위의 접근 방식과 셀레늄었 던지는 예외는 요소를 발견되지 않습니다.추가하는 접두사 xpath=문제가 해결된 것입니다.

xpath=(//td[@class='cell name bold'])[1]
xpath=(//td[@class='cell name bold'])[2] 

/descendant::input[@type='text'][1]
/descendant::input[@type='text'][2]

할 수 있습 검색 모든 입력하는 요소에서 나무입니다.그것은 작동하지 않습하려는 경우에는 구문 분석 subtree.

더 좋은 방법입니다:

(/form/div/input[@type='text'])[1]
(/form/div/input[@type='text'])[2]

는 반환 결과를#1,#2 등입니다.XPath 형식에 대해 다양한 부류입니다.

물론 당신은 또한 할 수 있는

(//input[@type='text'])[1]

이것은 매우 편리로 셀레늄만 사용하는 첫 번째 매치하고 있습으로 설정 결과는 무엇 XPath 일반적으로 반환합니다.

방법이 없 셀레늄 수 있는 평가 항목의 목록을 반환합니다.그것은 단지 그랩과 그것의 재료로습니다.

Dave 답이 최선의 대안을 찾고 계신다.

내가 하려는 정확한에서 같은 일 셀레늄 및 그 시도를 사용하여@데이브-사냥's 를 들어 하지만 그것은 잘못된 방법을 찾기에 대한 개별 요소에서 컬렉션입니다.

다음 예제를 살펴보겠습니다.

<form>
 <div>
  <input type="text" name="field1" />
 </div>
 <div>
  <input type="text" name="field2" />
 </div>
</form>

식을 사용할 경우 다음과 같:

//input[@type='text'][1]

이 모든 텍스트 입력에 페이지입니다.왜?기 때문에 각각의 입력이 일치하는 첫 번째 요소에 그것의 자신의 나무입니다.

그러나,당신이 사용하는 표현이 다음과 같:

/descendant::input[@type='text'][1]

/descendant::input[@type='text'][2]

첫 번째 식로잡을 것이 첫 번째 입력하고 두 번째는 표현을 사로잡고 두 번째로 입력합니다.그것은 매우 중요한 것을 하나를 사용하여"/"과 이중"//".

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top