Artificial Intelligence

[Python] RPA를 위한 웹 자동화 매크로

테리는당근을좋아해 2020. 2. 4. 21:31

셀레니움(selenium)이란?

셀레니움은 다양한 브라우저 및 플랫폼에서 웹 응용 프로그램을 위한 자동화 테스트 스위트 패키지이다.

rpa 시스템 구현을 위해 셀레니움을 활용하여 자동화 웹 응용 시스템을 구현한다.

 

셀레니움 설치

$ pip install selenium

 

드라이버 설치

chrome://version로 접속해 크롬버전 확인

 

확인한 버전에 맞는 드라이버 설치

( https://sites.google.com/a/chromium.org/chromedriver/downloads )

 

Downloads - ChromeDriver - WebDriver for Chrome

WebDriver for Chrome

sites.google.com

패키지 임포트 및 드라이버 객체 생성

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome('./chromedriver')

 

입력한 URL 접속

# 원하는 url로 접속
driver.get('http://www.naver.com')

# 접속한 사이트 이름확인
assert "NAVER" in driver.title

 

검색 기능

# 검색기능
# html id 값으로 element 생성
elem = driver.find_element_by_id("query")
# 검색 값 입력
elem.send_keys("아이폰7")
# 버튼 찾기
elem = driver.find_element_by_id("search_btn")
# 클릭
elem.click()

 

로그인 기능

# 로그인 기능
# 메인 페이지의 로그인 버튼 클릭
elem = driver.find_element_by_class_name('lg_local_btn')
elem.click()

# ID 입력
elem = driver.find_element_by_id("id")
elem.send_keys("아이디")

# PW 입력
elem = driver.find_element_by_id("pw")
elem.send_keys("패스워드")

# 로그인 버튼 클릭
elem = driver.find_element_by_class_name("btn_global")
elem.click()

일반적인 로그인 기능을 구현하였지만, 네이버와 같은 사이트는 자동입력방지로 인해 로그인을 할 수 없게 된다.