Selenium 4.0 이상에서의 웹브라우저의 새로운 탭과 윈도우를 여는 방식을 소개합니다.
switchTo()
에 newWindow()
메소드에, 몇가지 enum타입을 넘길 수 있습니다.
driver.switchTo().newWindow(WindowType.TAB);
이렇게 하면 현재 윈도우에서 새로운 탭을 엽니다.
driver.switchTo().newWindow(WindowType.WINDOW);
이렇게 하면 새로운 웹브라우저창을 엽니다.
이때 driver는 항상 신규 탭, 신규 윈도우를 보고 있는 상황이 됩니다.
원하는 탭, 윈도우로 이동하기 위해서는 Iterator를 핸들링해줄 수 있어야합니다.
Set<String> winids = driver.getWindowHandles();
Iterator<String> it = winids.iterator();
List<String> winIndex = new ArrayList<String>();
while (it.hasNext()) {
winIndex.add(it.next());
}
driver.switchTo().window(winIndex.get(1));
getWindowHandles()
를 이용하여 정보를 얻어온 다음 switchTo().window()
를 이용해 전환할 수 있습니다.