Selenium WebDriver CSS Selector Tip - List<WebElement>
2013. 12. 4. 10:19 |
오늘은 회사에서 작업하다가 체험한 유용한 로직을 정리해 두어야 겠다.
<input onclick="display('0000','AAAA','y')" value="test" class="test" type="button">
<input onclick="display('0001','BBBB','y')" value="test" class="test" type="button">
<input onclick="display('0002,'CCCC','y')" value="test" class="test" type="button">
<input onclick="display('0003','DDDD','y')" value="test" class="test" type="button">
<input onclick="display('0004','EEEE','y')" value="test" class="test" type="button">
<input onClick="display('0005','FFFF','y')" value="test" class="test" type="button">
Selenium WebDriver로 Automation Testing 작업을 하고 있는데 위와 같은 링크가 나타났다.
예를 들어 이중에서 세번째 것을 클릭해야 하는데 ... 이걸 어떻게 클릭해야 할지....
여러번 헤매다가 찾아낸 방법이다.
List<WebElement> solution = WebDriverAction.getElemtnts(By.cssSelector("input[type='button'][value='test'"));
for(WebElement aaa : solution)
{
if(aaa.getAttribute("onClick").contains("CCCC")) {
aaa.click();
}
}
일단 cssSelector를 사용해서 type과 value 조합으로 WebElement들을 모드면 위의 input 들만 모일것 같다.
WebDriverAction.getElement를 사용해서 이 조합으로 된 WebElement들을 List로 담는다.
그리고 for 루프를 돌리면서 onClick이라는 attribute의 값들을 받아서 그 중에 CCCC를 포함하고 있는 놈이 걸리면 그 놈을 클릭한다.
해결하고 나니까 간단한데 이걸 처음 봤을 때는 사실 좀 헤맸다.
그리고 아래와 같은 코드도 있다.
driver.findElement(By.id("testId")).click();
List<WebElement> solution = WebDriverAction.getElemtnts(By.cssSelector("div[class="testclass"));
for(WebElement aaa : solution)
{
if(aaa.getText().equalsIgnoreCase("Year") {
aaa.click();
}
}
이것은 select option 코드에서 특정 option을 선택할 때 사용한 거다.
이걸 사용한 select option은 일반적이지는 않았다.
하여간 이렇게 WebElement들을 List에 담아서 for 문을 돌리면서 특정 조건에 맞으면 해당 아이템을 클릭하는 로직이 실무에서는 많이 사용되는 것 같다.
'TDD Project > Selenium Web Driver' 카테고리의 다른 글
[Selenium] IE 브라우저 사용할 때 지켜야 할 점들 (2) | 2014.01.27 |
---|---|
[Selenium] Select Option 관련 로직 정리 (0) | 2014.01.27 |
Selenium WebDriver 작업시 유용한 로직 - Pagination 등 (1) | 2013.12.16 |
Selenium WebDriver - Alert Control, Escape key (0) | 2013.12.06 |
Selenium Webdriver - iframe 사용하기 (2) | 2013.12.05 |
Selenium WebDriver 에서 JavascriptExecutor 사용할 때 유념해야 될 상황 (0) | 2013.12.02 |
Page Objects in Selenium 2 (Web Driver) 소스 분석 (with Page Objects) 04 (0) | 2013.10.30 |
Page Objects in Selenium 2 (Web Driver) 소스 분석 (with Page Objects) 03 (0) | 2013.10.27 |
Page Objects in Selenium 2 (Web Driver) 소스 분석 (with Page Objects) 02 (0) | 2013.10.25 |
Page Objects in Selenium 2 (Web Driver) 소스 분석 (with Page Objects) 01 (0) | 2013.10.25 |