Selenium 을 이용해 버튼을 클릭하고 페이지를 이동하는 방법에 대해 정리하였다.
click() 함수를 이용하면 버튼을 클릭할 수 있다.
<!-- html -->
<a href="/notice?id=700&page=2" class="_next"></a>
// java
WebElement webElement = driver.findElement(By.cssSelector("a._next"));
webElement.click();
버튼의 이벤트가 위와 같이 url이 아닌 javascript 로 되어있는 경우에는 executeScript() 를 이용해 클릭 이벤트를 발생시킨다.
<!-- html -->
<a href="javascript:page_link('2')" class="_next">다음</a>
// java
WebElement element = driver.findElement(By.cssSelector("a._next"));
((ChromeDriver) driver).executeScript("arguments[0].click();", element);
버튼 클릭 시 페이지가 새 탭에서 열리는 경우도 있다.
그 경우에는 새 탭으로 윈도우를 변경해주면 된다.
<!-- html -->
<a href="/notice?id=700&page=2" class="_next" target="_blank"></a>
// java
WebElement webElement = driver.findElement(By.cssSelector("a._next"));
webElement.click();
// newTabHandle 는 이동할 탭을 선택해주면 된다.
// 여기서는 WindowHandles 가 기존탭(0), 새탭(1) 인 상황을 가정하에 진행하였다.
String newTabHandle = driver.getWindowHandles().toArray()[1].toString();
driver.switchTo().window(newTabHandle);