2012-10-20 2 views
2

div 요소를 #myPage 요소 아래에서 찾고 있다고 가정합니다. 내 목표는 CSS 선택기를 사용하고 검색 범위를 #myPage 자손으로 제한하는 것입니다.Selenium을위한 상대 CSS 탐지기가 있습니까?

WebElement page = driver.findElement(new By.ById("myPage")); 
.... 
List<WebElement> item = page.findElements(new By.ByCssSelector("div")); 
: CSS는 모든 문서 div의, #myPage의뿐만 아니라 후손을 산출 사용하려고 시도하는, 그러나

WebElement page = driver.findElement(new By.ById("myPage")); 
.... 
List<WebElement> item = page.findElements(new By.ByXPath(".//div")); 

: 나는 이런 식으로 뭔가를 쓸 수 셀레늄의 XPath 로케이터를 사용

큰 차이점은 XPath 식을 상대적으로 만드는 접두사가 .//입니다. 나는 CSS 구문에서 비슷한 속성을 찾을 수 없었고 가능한지 궁금했습니다.

P.
#myPage > div 표현식을 사용할 수 있다는 것을 알고 있지만 페이지 조회 작업을 해당 자손의 조회와 결합하면 항상 바람직하지는 않습니다.

+0

나는 이것을 시도 할 것입니다 : driver.findElements (By.cssSelector ("# myPage div")) 어쨌든, 첫 번째 작업은 특정 ID가있는 페이지를 찾고 있습니다. 두 번째 작업 - 페이지에서 요소를 찾고 있습니다 ('div'descedants). "#myPage div"cssSelector가 작업을 통합하는 것 같습니다. –

+0

응답 해 주셔서 감사합니다. 그러나 이러한 작업을 결합하는 것이 항상 필요한 것은 아닙니다. – gamliela

답변

2

이 기능은 아직 존재하지 않습니다. 유사한 기능이 DOM에 대한 Selectors API 레벨 2에서 제안되었으며 Selector 레벨 4에서 relative selectors으로 성문화되었지만 Selenium이 이러한 기능을 구현하는지 여부는 알 수 없습니다.

상대 조회를 수행해야하는 경우 XPath 만 현재 유일한 옵션입니다.

관련 문제