상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 셀레니움에서 여러 탭을 관리하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
셀레니움(Selenium)은 웹 애플리케이션을 자동화하기 위한 강력한 도구로, 여러 탭을 관리하는 기능도 제공합니다. 여러 탭을 다루는 것은 웹 브라우저에서 여러 페이지를 동시에 열고 작업할 수 있게 해주므로, 테스트 자동화에서 매우 유용합니다. 아래에서는 셀레니움에서 여러 탭을 관리하는 방법에 대해 자세히 설명하겠습니다. 1. 기본 개념 웹 브라우저에서 탭은 각기 다른 URL을 로드할 수 있는 독립적인 페이지입니다. 셀레니움에서는 각 탭을 브라우저의 "윈도우 핸들"을 통해 관리합니다. 각 탭이 열릴 때마다 새로운 핸들이 생성되며, 이를 통해 특정 탭으로 전환하거나 탭을 닫는 등의 작업을 수행할 수 있습니다. 2. 탭 열기 새로운 탭을 열기 위해서는 JavaScript를 사용하여 `<a href='https://sangseek.com/sangseeks/window.open/ko'>window.open</a>()` 메서드를 호출할 수 있습니다. 예를 들어, 다음과 같이 새로운 탭을 열 수 있습니다. ```python from selenium import webdriver 웹 드라이버 초기화 driver = webdriver.Chrome() 첫 번째 탭에서 URL 열기 driver.get("https://www.example.com") 새로운 탭 열기 driver.execute_script("window.open('https://www.google.com', '_blank');") ``` 3. 탭 전환 새로운 탭이 열리면, 셀레니움은 기본적으로 첫 번째 탭에 포커스를 유지합니다. 다른 탭으로 전환하려면, `window_handles` 속성을 사용하여 현재 열려 있는 모든 탭의 핸들을 가져온 후, 원하는 탭의 핸들로 전환해야 합니다. ```python 모든 탭의 핸들 가져오기 handles = driver.window_handles 두 번째 탭으로 전환 driver.switch_to.window(handles[1]) 현재 탭에서 작업 수행 print(driver.title) Google의 제목 출력 첫 번째 탭으로 다시 전환 driver.switch_to.window(handles[0]) print(driver.title) Example.com의 제목 출력 ``` 4. 탭 닫기 작업이 끝난 후에는 탭을 닫을 수 있습니다. 현재 탭을 닫으려면 `driver.close()` 메서드를 사용하고, 닫은 후에는 다시 원하는 탭으로 전환해야 합니다. ```python 현재 탭 닫기 driver.close() 첫 번째 탭으로 다시 전환 driver.switch_to.window(handles[0]) ``` 5. 전체 예제 아래는 여러 탭을 열고, 전환하고, 닫는 <a href='https://sangseek.com/sangseeks/전체 과정/ko'>전체 과정</a>을 보여주는 예제입니다. ```python from selenium import webdriver import time 웹 드라이버 초기화 driver = webdriver.Chrome() 첫 번째 탭에서 URL 열기 driver.get("https://www.example.com") time.sleep(2) 페이지 로드 대기 새로운 탭 열기 driver.execute_script("window.open('https://www.google.com', '_blank');") time.sleep(2) 모든 탭의 핸들 가져오기 handles = driver.window_handles 두 번째 탭으로 전환 driver.switch_to.window(handles[1]) print(driver.title) Google의 제목 출력 time.sleep(2) 세 번째 탭 열기 driver.execute_script("window.open('https://www.bing.com', '_blank');") time.sleep(2) 모든 탭의 핸들 가져오기 handles = driver.window_handles 세 번째 탭으로 전환 driver.switch_to.window(handles[2]) print(driver.title) Bing의 제목 출력 time.sleep(2) 현재 탭 닫기 driver.close() 두 번째 탭으로 전환 driver.switch_to.window(handles[1]) print(driver.title) Google의 제목 출력 time.sleep(2) 현재 탭 닫기 driver.close() 첫 번째 탭으로 전환 driver.switch_to.window(handles[0]) print(driver.title) Example.com의 제목 출력 <a href='https://sangseek.com/sangseeks/드라이버 종료/ko'>드라이버 종료</a> driver.quit() ``` 6. 주의사항 - 탭을 열고 닫을 때는 항상 현재 탭의 핸들을 관리해야 합니다. 그렇지 않으면 예기치 않은 동작이 발생할 수 있습니다. - 각 탭에서 작업을 수행할 때는 페이지가 완전히 로드될 때까지 기다리는 것이 중요합니다. 이를 위해 `time.sleep()`을 사용할 수 있지만, `WebDriverWait`을 사용하는 것이 더 효율적입니다. 결론 셀레니움에서 여러 탭을 관리하는 것은 웹 <a href='https://sangseek.com/sangseeks/자동화 테스트/ko'>자동화 테스트</a>에서 매우 유용한 기능입니다. 위의 방법을 통해 새로운 탭을 열고, 전환하고, 닫는 작업을 쉽게 수행할 수 있습니다. 이를 통해 복잡한 웹 애플리케이션의 테스트를 보다 효율적으로 진행할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기