skill/check

셀레니움(Selenium)

have a nice day :D 2025. 10. 14. 22:47
반응형

셀레니움(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 변경 시 스크립트 수정 필요



반응형