2015-01-30 3 views
3

페이지에 요소가 여러 개 있습니다. PageFactory를 사용하여 요소를 초기화하고 싶습니다.WebDriver PageFactory 요소 목록 찾기

나는

@FindBy(xpath = "//*[contains(@class,'x-grid-tree-node-leaf')]")  
    List<WebElement> allElements; 

을 사용하여 다음 시도했지만 이것은 단지 하나의 요소를 반환합니다.

지금, 나는 요소

List<WebElement> allElements = driver.findElements(By.xpath("//*[contains(@class,'x-grid-tree-node-leaf')]")); 

이 4 개 요소

문제가 될 수있는 것을 어떤 포인터를 반환을 찾기위한 전통적인 방법을 사용하는 경우?

+0

http://stackoverflow.com/questions/8008138/selenium-webdriver-and-pagefactory-initialize-listwebelement-elements도 참조하십시오. – alecxe

답변

-2

Chrome 개발자 도구 또는 Firebug에서 xpath를 실행 해 보았습니까?

List<WebElement> allElements = driver.findElements(By.xpath("//*[contains(@class,'x-grid-tree-node-leaf')]")); 

.

+0

부정적인 plz를 설명 하시겠습니까? – user1019163

+0

답변이 페이지 팩토리가 아니므로 '마이너스 1'이 있다고 가정합니다. 물론 WebDriver의 인스턴스를 직접 사용할 수는 있지만 페이지 팩토리를 사용하지 않아야합니다. – olyv

+0

의견을 보내 주셔서 감사합니다. 나는 다음 번에 질문을 읽을 때 더욱 조심할 것입니다. – user1019163

0

@FindBy 주석을 사용하는 대신 @FindAllBy 주석을 사용하십시오.

@FindAllBy(xpath = "//*[contains(@class,'x-grid-tree-node-leaf')]")  
List<WebElement> allElements; 

FindAllBy java 클래스의 경우 link입니다.

0

사용 findall은 주석 @FindBy 태그의 시리즈를 얻고 FindBy 기준과 일치하는 모든 요소를 ​​검색합니다.

@FindAll(@FindBy(how = How.XPATH, using = "//*[contains(@class,'x-grid-tree-node-leaf')]")) 
List<WebElement> allElements; 
1
@FindBy(xpath = "//*[contains(@class,'x-grid-tree-node-leaf')]")  
List<WebElement> allElements; 

이 작동합니다. 내 코드에 버그가있었습니다.