2014-02-27 1 views
0

아이콘을 클릭하기위한 다음 자바 조각이 있습니다.Java/Webdriver 사용하기 같은 이름의 두 번째 요소를 선택하고 싶습니다.

driver.findElement(By.cssSelector("a[class='icon']")).click(); 

로그인 할 때마다 고유 한 ID를 선택할 수 없습니다. 페이지에 className으로 'icon'이 포함 된 classNames가 세 개 있습니다. webdriver/java/selenium에서 두 번째 클래스를 클릭합니다.

어떻게하면됩니까? 사전에

감사합니다,

답변

0

이 시도 : 당신이 이해하기 쉽게 만드는 경우,이

driver.findElements(By.cssSelector("a[class='icon']")).get(1).click(); 

을 또는 : 당신은 다음, 3 개 등의 요소가있는 경우

List<WebElement> icons = driver.findElements(By.cssSelector("a[class='icon']")); 
WebElement icon = icons.get(1); 
icon.click(); 

0, 1 또는 2로 icons.get으로 전화 할 수 있습니다.

+0

그랬습니다! get (1)은 기본적으로 1을 건너 뛰는 것을 의미합니다. 따라서 get (2)을 사용하면 1과 2를 건너 뛰고 같은 클래스 이름을 가진 3 번째 아이콘을 클릭하겠습니까? 빠른 답변 주셔서 감사합니다! – user3356141

+0

확장 설명이 추가되었습니다 (업데이트 된 답변 참조). 그것은 본질적으로 동일하지만, 일반적으로'findElements' 메소드는'List' 객체를 반환합니다. 해당 객체에서 요소를 가져 오려면'get'을 사용할 수 있습니다 (셀레늄과 관계없이 다른'List' 객체와 마찬가지로). ... 환영합니다! –

관련 문제