[엘리스 QA 트랙] Selenium을 활용한 자동화 웹 테스트

황인철·2025년 3월 12일

엘리스 QA트랙

목록 보기
14/18
post-thumbnail

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 선택자로 찾기
  • XPath = HTML 문서의 특정 요소를 찾기 위해 경로를 지정하는 방식
  • CSS 선택자 = HTML 요소를 스타일링할 때 사용되는 방식

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)
profile
열심히하는QA가되고싶어요

0개의 댓글