본문 바로가기
자동화(Automation)

Selenium_Window tab

by Testengineer 2022. 9. 10.
반응형

안녕하세요. 이번 포스팅 주제는 윈도우 탭 페이지에 관한 자동화 내용을 다뤄보려고 합니다.

자동화를 할 때 의도적으로 새탭을 생성해서 사용이 필요한 경우도 있고, 아니면 새 페이지가 열리면서 본창이 아닌 새 탭으로 열리는 경우가 있어서 탭에 관해 한번 정리해두면 좋을 것 같아서 이번 기회에 정리해보고자 합니다 :)

 

위와 같이 탭이 여러개 있을 경우 구분을 해줘야 합니다.

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

댓글