파이썬/크롤링

셀레니움의 키보드 : selenium.webdriver.common.keys

코샵 2024. 1. 24. 10:12
반응형

셀레니움을 사용하여 웹 페이지의 입력 필드에 텍스트를 입력하거나 특수 키를 사용하여 웹 페이지와 상호작용할 수 있습니다. 이러한 기능을 수행하는 데 핵심적인 역할을 하는 것이 바로 selenium.webdriver.common.keys 모듈입니다.

 

1. 키 입력: send_keys 메서드 활용

WebElement를 찾은 후, send_keys() 메서드를 사용하여 해당 요소에 키 입력을 전송할 수 있습니다. 이 메서드는 텍스트 문자열뿐만 아니라 키보드의 특수 키도 지원합니다.

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

driver = webdriver.Chrome()

driver.get('https://www.naver.com/')
driver.implicitly_wait(3)

# 검색창을 찾아 "끄적끄적 코딩 공방" 입력 
search_bar = driver.find_element(By.ID, 'query')
search_bar.send_keys('끄적끄적 코딩 공방')

# 엔터키를 입력
search_bar.send_keys(Keys.ENTER)

 

2. 특수 키 사용

selenium.webdriver.common.keys 모듈은 다음과 같은 키보드의 특수 키를 제공합니다.

  • Keys.ENTER: Enter 키
  • Keys.BACKSPACE: Backspace 키
  • Keys.TAB: Tab 키
  • Keys.SPACE: 스페이스바
  • Keys.ESCAPE: Esc 키
  • Keys.CONTROL, Keys.SHIFT, Keys.ALT: Ctrl, Shift, Alt 키
  • Keys.ARROW_UP, Keys.ARROW_DOWN, Keys.ARROW_LEFT, Keys.ARROW_RIGHT: 화살표 키
  • Keys.F1 ~ Keys.F12: 기능 키
  • Keys.HOME, Keys.END, Keys.PAGE_UP, Keys.PAGE_DOWN: Home, End, Page Up, Page Down 키
  • Keys.DELETE: Delete 키
  • Keys.INSERT: Insert 키

3. 조합 키 사용

여러 키를 동시에 누르려면 + 연산자를 사용합니다.

search_box.send_keys(Keys.CONTROL + "a")  # Ctrl+A 키 조합
search_box.send_keys(Keys.CONTROL + "c")  # Ctrl+C 키 조합
search_box.send_keys(Keys.CONTROL + "v")  # Ctrl+V 키 조합

 

4. 주의 사항

  • 웹 페이지의 동작 방식에 따라 키 입력이 예상대로 작동하지 않을 수 있습니다.
  • 특수 키의 지원 범위는 브라우저마다 다를 수 있습니다.

 

selenium.webdriver.common.keys 모듈을 활용하면 페이지와의 상호작용을 한층 자연스럽고 효율적으로 있습니다.