1. Selenium이란?
Selenium은 웹 브라우저를 자동으로 제어할 수 있는 오픈소스 도구
크롤링(데이터 수집), UI 테스트 자동화 등에 활용됨
2. 웹 요소 찾기(DOM 탐색)
from selenium import webdriver
driver = webdriver.Chrome() # 크롬 브라우저 실행
driver.get("https://example.com") # 웹페이지 접속
# 요소 찾기
element = driver.find_element("id", "username") # ID로 요소 찾기
element.send_keys("test_user") # 입력 값 넣기
#자주 사용하는 요소 선택 방법!!
find_element("id", "example") : ID로 요소 찾기
find_element("name", "example") : name 속성으로 찾기
find_element("xpath", "//*[@id='example']") : XPath로 찾기
find_element("css selector", ".example") : CSS 선택자로 찾기
3. 웹페이지 자동 로그인 및 데이터 크롤링
#자동 로그인
driver.find_element("id", "username").send_keys("my_id")
driver.find_element("id", "password").send_keys("my_password")
driver.find_element("id", "login-button").click() # 로그인 버튼 클릭
#데이터 가져오기
data = driver.find_element("id", "content").text # 텍스트 가져오기
print(data)
4. 일정 관리 시스템 UI 자동화
driver.find_element("id", "add-event").click() # 일정 추가 버튼 클릭
driver.find_element("id", "event-title").send_keys("회의") # 일정 입력
driver.find_element("id", "save-button").click() # 저장 버튼 클릭
5. 비동기 데이터 로딩 및 에러 처리
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 특정 요소가 로드될 때까지 기다리기
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "dynamic-content")))
print(element.text)