Selenium은 웹 애플리케이션을 테스트하고 자동화하기 위한 브라우저 자동화 도구와 라이브러리이다. Selenium을 사용하면 웹 페이지에서 사용자의 동작과 같이 웹 애플리케이션을 제어하고 데이터를 수집할 수 있다.
Selenium을 사용하기 위해서 먼저 라이브러리를 설치해야한다. anaconda prompt에 다음과 같은 명령어를 입력하여 Selenium을 설치해보자.
pip install selenium
다음으로 Selenium의 기능 알아보자.
Selenium은 여러 브라우저를 지원하며, 웹 페이지를 자동으로 열고 조작할 수 있다. 주요 브라우저인 Chrome, Firefox, Edge, Safari 등을 지원한다.
from selenium import webdriver
# 웹 드라이버 초기화 (Chrome 사용)
driver = webdriver.Chrome(executable_path='chromedriver.exe') # Chrome 드라이버 경로 설정
# 웹 페이지 열기
url = 'https://www.example.com' # 원하는 웹 페이지 URL로 변경
driver.get(url)
# 웹 페이지 조작
search_box = driver.find_element_by_name('q') # 검색 상자 요소 찾기 (name 속성 사용)
search_box.send_keys('Selenium 자동화') # 검색어 입력
search_box.submit() # 검색 실행
# 결과 확인 (예제로 구글 홈페이지에서 결과 확인)
print(driver.page_source)
# 브라우저 닫기
driver.quit()
개발자 및 테스트 엔지니어는 Selenium을 사용하여 웹 애플리케이션을 자동으로 테스트할 수 있다. 이를 통해 애플리케이션의 동작을 확인하고 버그를 식별할 수 있다.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 웹 드라이버 초기화 (Chrome 사용)
driver = webdriver.Chrome(executable_path='chromedriver.exe') # Chrome 드라이버 경로 설정
# 웹 페이지 열기
url = 'https://www.google.com'
driver.get(url)
# 검색어 입력
search_box = driver.find_element_by_name('q') # 검색 상자 요소 찾기 (name 속성 사용)
search_box.send_keys('Selenium 테스트 자동화') # 검색어 입력
search_box.send_keys(Keys.RETURN) # Enter 키 누르기
# 결과 확인
assert 'Selenium 테스트 자동화' in driver.title # 검색 결과 페이지의 제목에 해당 문자열이 포함되어 있는지 확인
# 브라우저 닫기
driver.quit()
이 코드는 구글 검색 페이지를 열고 검색어를 입력하여 검색 결과를 확인하는 간단한 테스트를 수행한다.
Selenium을 사용하여 웹 페이지의 데이터를 추출하고 원하는 정보를 스크레이핑할 수 있습니다. 이를 통해 웹 사이트에서 데이터를 수집하는 웹 크롤러를 개발할 수 있습니다.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 웹 드라이버 초기화 (Chrome 사용)
driver = webdriver.Chrome(executable_path='chromedriver.exe') # Chrome 드라이버 경로 설정
# 웹 페이지 열기
url = 'https://www.google.com'
driver.get(url)
# 검색어 입력
search_box = driver.find_element_by_name('q') # 검색 상자 요소 찾기 (name 속성 사용)
search_box.send_keys('웹 스크래핑 with Selenium') # 검색어 입력
search_box.send_keys(Keys.RETURN) # Enter 키 누르기
# 검색 결과 스크래핑
results = driver.find_elements_by_css_selector('h3') # 검색 결과 제목을 CSS 선택자로 찾음
for result in results:
title = result.text # 검색 결과의 제목
link = result.find_element_by_xpath('..').get_attribute('href') # 검색 결과의 링크
print("제목:", title)
print("링크:", link)
# 브라우저 닫기
driver.quit()
이 코드는 구글 검색 결과 페이지에서 검색어에 해당하는 제목과 링크를 추출한다.
Selenium은 웹 애플리케이션의 작업을 자동화하는 데 사용됩니다. 예를 들어, 웹 페이지에서 사용자 등록, 로그인, 양식 제출 등을 자동으로 수행할 수 있습니다.
from selenium import webdriver
# 웹 드라이버 초기화 (Chrome 사용)
driver = webdriver.Chrome(executable_path='chromedriver.exe') # Chrome 드라이버 경로 설정
# 웹 페이지 열기
url = 'https://www.example.com/login' # 원하는 웹 페이지 URL로 변경
driver.get(url)
# 로그인 정보 입력
username = driver.find_element_by_id('username') # 사용자 이름 입력 필드 찾기 (id 속성 사용)
password = driver.find_element_by_id('password') # 비밀번호 입력 필드 찾기
submit_button = driver.find_element_by_id('login_button') # 로그인 버튼 찾기
username.send_keys('사용자이름') # 사용자 이름 입력
password.send_keys('비밀번호') # 비밀번호 입력
submit_button.click() # 로그인 버튼 클릭
# 작업 완료 후 기다리기 (예: 대시보드 로드 대기)
import time
time.sleep(5) # 5초간 대기 (작업 완료를 기다리는 대신, 실제 대기 시간을 조절)
# 필요한 작업 수행
# 브라우저 닫기
driver.quit()
이 코드는 간단한 로그인 페이지를 대상으로 로그인 작업을 자동화한다.
Selenium은 웹 애플리케이션의 UI를 테스트하고 검증하는 데 사용된다. 시각적 요소와 상호작용을 테스트하는 데 유용하다.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 웹 드라이버 초기화 (Chrome 사용)
driver = webdriver.Chrome(executable_path='chromedriver.exe') # Chrome 드라이버 경로 설정
# 웹 페이지 열기
url = 'https://www.google.com'
driver.get(url)
# 검색어 입력
search_box = driver.find_element_by_name('q') # 검색 상자 요소 찾기 (name 속성 사용)
search_box.send_keys('Selenium 웹 테스팅') # 검색어 입력
search_box.send_keys(Keys.RETURN) # Enter 키 누르기
# 결과 확인
assert 'Selenium 웹 테스팅' in driver.page_source # 페이지 소스에 해당 문자열이 포함되어 있는지 확인
# 브라우저 닫기
driver.quit()
이 코드는 구글 검색 페이지를 열고 검색 결과에서 특정 문자열이 나타나는지 확인한다.