반응형
안녕하세요. 이번 포스팅 주제는 윈도우 탭 페이지에 관한 자동화 내용을 다뤄보려고 합니다.
자동화를 할 때 의도적으로 새탭을 생성해서 사용이 필요한 경우도 있고, 아니면 새 페이지가 열리면서 본창이 아닌 새 탭으로 열리는 경우가 있어서 탭에 관해 한번 정리해두면 좋을 것 같아서 이번 기회에 정리해보고자 합니다 :)
위와 같이 탭이 여러개 있을 경우 구분을 해줘야 합니다.
driver.getWindowHandle() : 현재 윈도우 탭 핸들을 구분해주기 위해 사용됨.
driver.switchTo().window(windowhandle) : window() 안에 windowhandle명을 사용해서 어느 탭으로 이동시켜줄지를 결정함.
@Test
public void TabChange() {
driver.get("https://www.daum.net/");
String ParentWindowHandle = driver.getWindowHandle();
System.out.println(driver.getCurrentUrl());
//쇼핑 클릭시 새 탭 생성됨
driver.findElement(By.xpath("//ul[@class='list_mainsvc']/li[6]")).click();
//다시 이전 탭으로 이동
driver.switchTo().window(ParentWindowHandle);
}
가장 베이직으로 사용할 수 있는 건 위의 두 메소드를 사용하면 첫 번째 탭과 두 번째 탭을 오갈 수 있습니다.
그리고 새 탭으로 열리는 페이지 이외에도 url을 가져올때 새 탭으로 열리게 설정할 수도 있습니다.
@Test
public void AddNCloseTab() {
String url = "https://www.daum.net/";
driver.get(url);
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("window.open()");
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
//새탭 열기
driver.switchTo().window(tabs.get(1));
driver.get("http://google.com");
//탭 닫기
driver.close();
driver.switchTo().window(tabs.get(0));
}
tabs라는 배열리스트를 생성해서 tabs.get(index)를 통해 탭을 추가할 수 있습니다.
아예 새탭과 본 탭을 이동시켜주는 코드를 미리 작성해서 함수로 생성해두면, 종종 쓰일 때마다 함수를 불러와서 사용하면 되니 편리하게 사용할 수 있습니다.
그럼 간단한 탭에 관한 포스팅은 여기서 마치겠습니다!
반응형
'자동화(Automation)' 카테고리의 다른 글
appium 자동화 Setting 1(Window 환경) (1) | 2024.03.31 |
---|---|
Selenium_HttpUrlConnection (0) | 2022.09.16 |
TestNG_실행파일 (0) | 2022.09.05 |
Selenium_Assert&Verify (0) | 2022.08.20 |
Selenium_WebDriverManager (0) | 2022.08.10 |
댓글