✅ Selenium 이란?
브라우저를 자동화하는 도구. 클릭, 스크롤, 입력 등을 미리 설정해두면 코드에 의해 웹사이트가 자동으로 동작하는 것이다. 웹 사이트 테스트를 위해 사용.
터미널에서 pip3 install selenium 명령으로 셀레니움을 설치한 뒤 다음과 같은 코드를 쳐줬다.
# Selenium 임포트
from selenium import webdriver
# 크롬 드라이버 생성
driver = webdriver.Chrome("C:/Users/82102/Downloads/chromedriver_win32/chromedriver.exe")
# 사이트 접속하기
driver.get('https://codeit.kr')
잘 동작하던 셀레니움이 나중에 버전이 안맞아서 오류가 날 수 있다.
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XX
크롬과 크롬 드라이버 버전이 안맞는 것인데, 이때는 크롬 드라이버를 크롬 버전에 맞게 다시 설치해야 한다.
.find_element_by_css_selector
: CSS 를 선택하는 것이다. 우리가 예전에 배운 select 처럼 가장 위의 하나만 선택한다.
click()
: 클릭동작을 수행해준다.
send_keys()
: 안에 무엇을 넣을지 수행해준다.
# Selenium 임포트
from selenium import webdriver
# 크롬 드라이버 생성
driver = webdriver.Chrome("C:/Users/82102/Downloads/chromedriver_win32/chromedriver.exe")
driver.implicitly_wait(3)
# 사이트 접속하기
driver.get('https://workey.codeit.kr/costagram/index')
driver.find_element_by_css_selector('a.top-nav__login-link').click()
driver.find_element_by_css_selector('.login-container__login-input').send_keys('codeit')
driver.find_element_by_css_selector('.login-container__password-input').send_keys('datascience')
driver.find_element_by_css_selector('.login-container__login-button').click()
전체 코드는 다음과 같다. 사이트가 자동으로 열리고, 로그인 기능을 스스로 수행하는 것을 확인할 수 있다.
(사실 너무 신기하다. 이것만 있으면 다 할 수 있을 거 같다.)
✅ 태그 이름으로 찾기
driver.find_element_by_tag_name('tag_name')
✅ id 로 찾기
driver.find_element_by_id('id-name')
✅ class 로 찾기
driver.find_element_by_class_name('class-name')
✅ 복수 요소 찾기
# CSS 선택자
driver.find_elements_by_css_selector('selector')
# 태그 이름
driver.find_elements_by_tag_name('tag_name')
# class 이름
driver.find_elements_by_class_name('class-name')
참고로 id 값을 사용하는 find_element_by_id() 메소드는 s가 붙는 버전이
리스트를 리턴