본문 바로가기

카테고리 없음

파이썬 Selenium ActionChains를 사용해서 웹사이트 자동 제어하기

ActionChains 기능을 사용하면 여러 개의 동작을 체인으로 묶어서 저장하고 실행할 수 있습니다. 마우스 이동, 클릭, 키보드 누름과 같은 기본 동작 이외에도, 마우스 커서를 특정 위치에 올려놓거나, 드래그 앤 드롭과 같은 복잡한 동작도 가능합니다. 

 

많이 쓰이는 기본 동작

동작 코드
element로 마우스 이동  ActionChains(driver).move_to_element(ref)
element 마우스 클릭 ActionChains(driver).click(ref)
element 키보드 입력 ActionChains(driver).send_keys_to_element(ref, keys)
키보드 입력 ActionChains(driver).send_keys(keys)

 

위와 같은 동작들을 체인으로 묶어서 실행한다고 생각하면 됩니다. 예시로 쿠팡에서 아이스크림이라는 상품명을 검색하는 코드를 작성했습니다.

 

# 라이브러리 불러오기
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

url = 'https://www.coupang.com/'

# 드라이버 연결
driver = webdriver.Chrome()
# 웹사이트 이동
driver.get(url)
time.sleep(1)

# 원하는 요소(element)를 찾습니다. 이 경우에는 검색창입니다.
search_box = driver.find_element_by_id('headerSearchKeyword')
# 다음과 같은 동작을 하는 액션 체인을 만들었습니다.
# 검색창을 찾고 '아이스크림'이라는 검색어를 입력한 뒤 Enter를 입력합니다.
actions = webdriver.ActionChains(driver).send_keys_to_element(search_box, '아이스크림').send_keys(Keys.ENTER)
# 체인을 실행합니다.
actions.perform()

 

webdriver.Chrome()에 별도의 경로 지정을 하지 않았습니다. 이것이 가능한 이유는 현재 스크립트 위치에 드라이버 파일이 위치하기 때문입니다. 같은 폴더에 위치한 것이 아니라면 드라이버 경로를 입력해주어야 합니다.

 

 

네이버 검색창에 키워드를 입력하고 검색 버튼을 눌러봅시다. 

아래 코드를 수정하면서 ActionChains()를 연습해보세요.

# 라이브러리 불러오기
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

# target url
url = 'https://www.naver.com/'
# 드라이버 연결
driver = webdriver.Chrome()
# 웹사이트 이동
driver.get(url)
time.sleep(1)

# 검색창
search_box = driver.find_element_by_id('query')

actions = webdriver.ActionChains(driver).send_keys_to_element(search_box, '아이스크림').send_keys(Keys.ENTER)
actions.perform()

 

 

- 이 글은 아나콘다(Anaconda3)가 설치된  주피터 노트북에서 작성되었습니다.