반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함


오늘은 회사에서 작업하다가 체험한 유용한 로직을 정리해 두어야 겠다.



<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 문을 돌리면서 특정 조건에 맞으면 해당 아이템을 클릭하는 로직이 실무에서는 많이 사용되는 것 같다.




반응형

Comment