[Python] Selenium 기능 및 샘플 코드




Selenium WebDriver는 웹 애플리케이션을 자동화하기 위한 도구로, 웹 브라우저를 제어하여 웹 페이지를 조작할 수 있습니다. 이번에는 WebDriver에서 지원하는 기능과 각각의 기능을 구현하는 샘플 코드를 설명합니다.


페이지 탐색 기능

URL 이동

브라우저 상에서 URL을 입력하여 웹 사이트를 접속 할 수 있습니다.

from selenium import webdriver

driver = webdriver.Chrome()

# URL 이동
driver.get("https://www.google.com")

뒤로 가기 / 앞으로 가기

페이지 접속 이력을 기반으로 뒤로/앞으로 가기를 수행할 수 있습니다.

from selenium import webdriver

driver = webdriver.Chrome()

# 첫 번째 페이지 이동
driver.get("https://www.google.com")

# 두 번째 페이지 이동
driver.get("https://www.naver.com")

# 뒤로 가기
driver.back()

# 앞으로 가기
driver.forward()

요소 탐색 기능

요소 찾기

By.ID

웹 페이지에서 ID 속성을 사용하여 요소를 찾을 수 있습니다.

element = driver.find_element(By.ID, 'my-id')

By.NAME

웹 페이지에서 NAME 속성을 사용하여 요소를 찾을 수 있습니다.

element = driver.find_element(By.NAME, 'my-name')

By.CLASS_NAME

웹 페이지에서 CLASS 속성을 사용하여 요소를 찾을 수 있습니다.

element = driver.find_element(By.CLASS_NAME, 'my-class')

By.TAG_NAME

HTML 태그 이름을 사용하여 요소를 찾을 수 있습니다.

element = driver.find_element(By.TAG_NAME, 'div')

By.LINK_TEXT

링크 텍스트를 사용하여 요소를 찾을 수 있습니다.

element = driver.find_element(By.LINK_TEXT, 'my-link-text')

By.PARTIAL_LINK_TEXT

링크 텍스트의 부분 문자열을 사용하여 요소를 찾을 수 있습니다.

element = driver.find_element(By.PARTIAL_LINK_TEXT, 'my-link')

By.XPATH

XPath 표현식을 사용하여 요소를 찾을 수 있습니다.

element = driver.find_element(By.XPATH, '//div[@class="my-class"]')

요소 조작

검색어 입력

검색어를 입력할 수 있습니다.

element.send_keys("Python")
element.send_keys(Keys.RETURN)

요소 클릭

해당 요소의 클릭 이벤트를 발생 시킬 수 있습니다.

element.click()

페이지 조작 기능

스크롤 조작

웹상에서 스크롤을 올리고 내리는 기능을 자동으로 실행할 수 있습니다.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.get("https://www.naver.com")

# 스크롤 다운
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(3)

# 스크롤 업
driver.execute_script("window.scrollTo(0, 0);")
time.sleep(3)

페이지 스크린샷

접속한 페이지의 스크린 샷을 찍고 파일로 저장할 수 있습니다.

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.google.com")

# 페이지 스크린샷
driver.save_screenshot("screenshot.png")

마치며

selenium을 이용하여 단순 웹의 데이터를 가져오는 것외에 다양한 액션 및 이벤트를 발생 시킬 수 있습니다.

이를 잘 이용하면 사람이 웹 상에서 액션하는 사항을 자동화로 구현이 가능하겠습니다.




Leave a Comment