[파이썬] Selenium 마우스 및 키보드 이벤트

Selenium is a popular tool for automating web browsers, allowing us to simulate user interactions on web pages. In this blog post, we will explore how to perform mouse and keyboard events using Selenium in Python.

Mouse Events

Selenium provides a ActionChains class to handle mouse events. Here are some common mouse events you can perform:

Moving the Mouse

To move the mouse cursor to a specific element or position on the web page, we can use the move_to_element() method. This is useful when we need to hover over an element or perform actions relative to a specific location.

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()

# Move the mouse to a specific element
element = driver.find_element_by_id("element-id")
ActionChains(driver).move_to_element(element).perform()

# Move the mouse to specific x, y coordinates
x = 100
y = 200
ActionChains(driver).move_by_offset(x, y).perform()

Clicking the Mouse

We can perform various mouse click actions using the click() method. This includes left-click, right-click, double-click, and more.

# Left-click a specific element
element = driver.find_element_by_id("element-id")
ActionChains(driver).click(element).perform()

# Right-click a specific element
element = driver.find_element_by_id("element-id")
ActionChains(driver).context_click(element).perform()

# Double-click a specific element
element = driver.find_element_by_id("element-id")
ActionChains(driver).double_click(element).perform()

Dragging and Dropping

To simulate dragging and dropping an element, we can use the drag_and_drop() method.

# Drag and drop an element from source to target
source_element = driver.find_element_by_id("source-element-id")
target_element = driver.find_element_by_id("target-element-id")
ActionChains(driver).drag_and_drop(source_element, target_element).perform()

Keyboard Events

With Selenium, we can also simulate keyboard events like typing, pressing keys, and key combinations.

Typing Text

To type text into an input field, we can use the send_keys() method.

# Typing text into an input field
input_element = driver.find_element_by_id("input-field-id")
input_element.send_keys("Hello, World!")

Pressing Keys

To simulate pressing keys on the keyboard, we can use the send_keys() method along with the Keys class from selenium.webdriver.common.keys.

from selenium.webdriver.common.keys import Keys

# Pressing the Enter key
element = driver.find_element_by_id("element-id")
element.send_keys(Keys.ENTER)

# Pressing the arrow keys
element = driver.find_element_by_id("element-id")
element.send_keys(Keys.ARROW_UP)
element.send_keys(Keys.ARROW_DOWN)
element.send_keys(Keys.ARROW_LEFT)
element.send_keys(Keys.ARROW_RIGHT)

Key Combinations

We can also simulate key combinations like Ctrl+A, Ctrl+C, or Ctrl+Shift+T using the send_keys() method.

# Pressing Ctrl+A (Select All)
element = driver.find_element_by_id("element-id")
element.send_keys(Keys.CONTROL + "a")

# Pressing Ctrl+C (Copy)
element = driver.find_element_by_id("element-id")
element.send_keys(Keys.CONTROL + "c")

# Pressing Ctrl+Shift+T (Reopen closed tab)
element = driver.find_element_by_tag_name("body")
element.send_keys(Keys.CONTROL + Keys.SHIFT + "t")

That wraps up our guide on performing mouse and keyboard events using Selenium in Python. With these techniques, you can automate web interactions just like a real user. Happy testing and automating!