Python Selenium 4 최신 버전 문법 정리
Selenium 4는 웹 자동화 및 스크래핑을 위한 강력한 도구입니다. Selenium 4에서는 여러 가지 새로운 기능과 개선된 문법이 도입되었습니다. 이 글에서는 Python에서 Selenium 4를 사용하는 최신 문법을 정리합니다.
1. 설치
Selenium 4를 사용하려면 최신 버전을 설치해야 합니다.
bash
pip install selenium
2. WebDriver 설정
Selenium 4에서는
패키지를 사용하여 드라이버를 자동으로 관리할 수 있습니다.
webdriver-manager
2.1 WebDriver 설치
bash
pip install webdriver-manager
2.2 WebDriver 사용 예시
“`python from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service
WebDriver 설정 및 초기화















service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service)
웹 페이지 열기
driver.get(“https://www.google.com”)
드라이버 종료
driver.quit() “`
3. 새로운 기능 및 개선된 문법
3.1 새로운 DevTools 프로토콜
Selenium 4는 Chrome DevTools 프로토콜을 지원하여 브라우저와의 상호작용을 더 쉽게 만들었습니다.
“`python from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service
service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service)
DevTools 세션 시작
driver.execute_cdp_cmd(“Network.enable”, {}) driver.execute_cdp_cmd(“Page.navigate”, {“url”: “https://www.google.com”})
driver.quit() “`
3.2 새로운 find_element 및 find_elements
Selenium 4에서는 새로운 방식으로 요소를 찾을 수 있습니다.
“`python from selenium.webdriver.common.by import By
driver.get(“https://www.google.com”)
단일 요소 찾기
search_box = driver.find_element(By.NAME, “q”)
다중 요소 찾기
links = driver.find_elements(By.TAG_NAME, “a”) “`
3.3 상수로서의 By 클래스
이전 버전에서는 문자열로 요소를 찾았지만, 이제는
클래스를 사용합니다.
By
“`python from selenium.webdriver.common.by import By
search_box = driver.find_element(By.NAME, “q”) “`
3.4 새롭게 개선된 wait 기능
Selenium 4에서는 기다리는 기능이 더 개선되었습니다.
“`python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC
driver.get(“https://www.google.com”)
요소가 나타날 때까지 대기
search_box = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.NAME, “q”)) ) “`
4. 예제: 구글 검색 자동화
Selenium 4를 사용하여 간단한 구글 검색 자동화 예제를 만들어 보겠습니다.
“`python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC
WebDriver 설정 및 초기화
service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service)
try: # 구글 페이지 열기 driver.get(“https://www.google.com”)
# 검색창 찾기
search_box = driver.find_element(By.NAME, "q")
검색어 입력 및 검색
search_box.send_keys(“Selenium 4”)
search_box.send_keys(Keys.RETURN)
검색 결과 대기
results = WebDriverWait(driver, 10).until(
EC.presence_of_all_elements_located((By.CSS_SELECTOR, “h3”))
)
첫 번째 검색 결과 출력
for result in results:
print(result.text)
finally: # 드라이버 종료 driver.quit() “`
5. 추가 팁
5.1 스크린샷 찍기
python
driver.save_screenshot('screenshot.png')
5.2 쿠키 관리
“`python
쿠키 추가
driver.add_cookie({“name”: “key”, “value”: “value”})
쿠키 가져오기
cookies = driver.get_cookies() print(cookies) “`
5.3 브라우저 창 크기 조절
“`python
창 크기 설정
driver.set_window_size(1024, 768)
최대화
driver.maximize_window() “`
FAQ
Q1: Selenium 4에서 브라우저 드라이버를 자동으로 관리할 수 있나요?
A1: 네,
패키지를 사용하여 브라우저 드라이버를 자동으로 설치하고 관리할 수 있습니다. 이 패키지를 사용하면 코드 내에서 수동으로 드라이버 경로를 설정할 필요가 없습니다.
webdriver-manager
Q2: Selenium 4의 DevTools 프로토콜이란 무엇인가요?
A2: DevTools 프로토콜은 브라우저와 상호작용할 수 있는 Chrome의 도구입니다. Selenium 4는 이 프로토콜을 지원하여 네트워크 활동을 모니터링하거나 페이지를 더 정밀하게 제어할 수 있습니다.
Q3: Selenium 4에서 요소를 찾는 새로운 방법은 무엇인가요?
A3: Selenium 4에서는
및
find_element
메서드에서
find_elements
클래스를 사용하여 요소를 찾습니다. 예를 들어,
By
와 같은 방식으로 사용할 수 있습니다.
find_element(By.NAME, "q")
Q4: Selenium 4의 기다리는 기능은 어떻게 개선되었나요?
A4: Selenium 4의 기다리는 기능은 더 직관적이고 사용하기 쉬워졌습니다.
와
WebDriverWait
모듈을 사용하여 요소가 특정 조건을 만족할 때까지 기다릴 수 있습니다.
expected_conditions
Q5: Selenium 4에서 스크린샷을 찍는 방법은 무엇인가요?
A5:
메서드를 사용하여 현재 페이지의 스크린샷을 PNG 파일로 저장할 수 있습니다.
driver.save_screenshot('screenshot.png')
Q6: Selenium 4에서 쿠키를 관리하는 방법은 무엇인가요?
A6:
메서드로 쿠키를 추가할 수 있으며,
driver.add_cookie({"name": "key", "value": "value"})
메서드로 현재 페이지의 모든 쿠키를 가져올 수 있습니다.
driver.get_cookies()
정리 표
| 항목 | 설명 | 예제 코드 |
|---|---|---|
| WebDriver 설정 | 브라우저 드라이버 자동 설치 및 초기화 |
|
| DevTools 프로토콜 | Chrome DevTools 프로토콜 지원 |
|
| 요소 찾기 | By 클래스를 사용한 요소 찾기 |
|
| 기다리는 기능 | WebDriverWait와 expected_conditions를 사용한 대기 |
|
| 스크린샷 찍기 | 현재 페이지의 스크린샷 저장 |
|
| 쿠키 관리 | 쿠키 추가 및 가져오기 |
|
| 브라우저 창 크기 조절 | 창 크기 설정 및 최대화 |
|
이 글을 통해 Selenium 4의 최신 문법과 기능을 이해하고, 실제 프로젝트에 활용할 수 있기를 바랍니다. Selenium 4를 사용하여 다양한 웹 자동화 작업을 효율적으로 수행해보세요.














