셀레니움(Selenium)은 웹 브라우저를 자동으로 제어하는 오픈소스 도구입니다.
사람이 직접 마우스 클릭하고 입력하는 일을 프로그램 코드로 대신 수행할 수 있게 해줍니다.
---
🔹 주요 용도
1. 웹 자동화 (Web Automation)
반복적인 웹 작업(로그인, 버튼 클릭, 데이터 입력, 다운로드 등)을 자동화할 수 있습니다.
→ 예: 매일 같은 사이트에 로그인해 보고서를 다운로드.
2. 웹 크롤링 / 데이터 수집
일반적인 HTML 파싱(BeautifulSoup 등)으로 접근이 어려운 JavaScript 기반 웹페이지에서 데이터를 가져올 때 사용합니다.
→ 페이지가 동적으로 렌더링되는 사이트도 처리 가능.
3. 테스트 자동화 (QA/Test Automation)
웹 애플리케이션의 기능 테스트를 자동으로 수행할 수 있습니다.
→ 프론트엔드 UI 테스트, 폼 입력, 클릭 결과 확인 등.
---
🔹 지원 언어
Selenium은 여러 프로그래밍 언어를 지원합니다:
Python
Java
JavaScript (Node.js)
C#
Kotlin
Ruby 등
---
🔹 구성 요소
구성 요소 설명
Selenium WebDriver 브라우저를 실제로 조작하는 핵심 드라이버 (Chrome, Firefox, Edge 등 지원)
Selenium IDE 클릭/입력 등 브라우저 동작을 직접 녹화해 테스트 스크립트를 만드는 도구
Selenium Grid 여러 브라우저·OS 조합에서 병렬 테스트를 수행하는 환경 구성 도구
---
🔹 간단한 예시 (Python)
from selenium import webdriver
from selenium.webdriver.common.by import By
# 크롬 브라우저 열기
driver = webdriver.Chrome()
# 웹페이지 이동
driver.get("https://www.google.com")
# 검색창에 입력
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Selenium Python")
search_box.submit()
# 결과 페이지의 제목 출력
print(driver.title)
# 브라우저 닫기
driver.quit()
---
🔹 장점
✅ 다양한 브라우저 지원 (Chrome, Firefox, Edge 등)
✅ 동적 페이지 처리 가능
✅ 테스트 프레임워크와 통합 용이 (JUnit, TestNG, PyTest 등)
🔹 단점
⚠️ 속도가 느림 (실제 브라우저를 띄우기 때문)
⚠️ 브라우저 버전 호환성 이슈 발생 가능
⚠️ API 변경 시 스크립트 수정 필요
'skill > check' 카테고리의 다른 글
| Junit 기반 백엔드 테스트 스위트 (0) | 2025.10.15 |
|---|---|
| 테스트 스위트(Test Suite) (0) | 2025.10.14 |
| 셀레니움(Selenium) 단점 (0) | 2025.10.14 |
| 셀레니움(Selenium) React 페이지 데이터 수집 예제 (Headless 모드) (0) | 2025.10.14 |