Selenium 鼠标和键盘事件


前言

Selenium 做自动化的时候会用到鼠标和键盘的操作,如:单击、双击、复制、粘贴等。

鼠标事件

Selenium 中的鼠标事件被封装在 ActionChains 类中。

单击 click

from selenium import webdriver
from selenium.webdriver import ActionChains

driver = webdriver.Chrome()

driver.get("http://sahitest.com/demo/clicks.htm")

btn = driver.find_element_by_xpath("/html/body/form/input[3]")
# 鼠标单击
ActionChains(driver).click(on_element=btn).perform()

双击 double_click

btn = driver.find_element_by_xpath("/html/body/form/input[2]")
# 鼠标双击
ActionChains(driver).double_click(btn).perform()

单击鼠标右键 context_click

btn = driver.find_element_by_xpath("/html/body/form/input[4]")
# 点击鼠标右键
ActionChains(driver).context_click(btn).perform()

在鼠标事件后面需要调用 perform() 方法。

更多的鼠标操作可以查看 ActionChains 源码

键盘事件

键盘事件封装在 Keys 中。

常用的键盘事件。

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

driver = webdriver.Chrome()

driver.get("https://www.baidu.com")

kw = driver.find_element_by_id("kw")
kw.send_keys("selenium")
# 全选
kw.send_keys(Keys.CONTROL, "a")
# 复制
kw.send_keys(Keys.CONTROL, "c")
# 剪切
kw.send_keys(Keys.CONTROL, "x")
# 粘贴
kw.send_keys(Keys.CONTROL, "v")
# 删除键
kw.send_keys(Keys.DELETE)
# 回车键
kw.send_keys(Keys.ENTER)
# 后退键
kw.send_keys(Keys.BACKSPACE)
# tab 键
kw.send_keys(Keys.TAB)
# 刷新
kw.send_keys(Keys.F5)

driver.quit()

更多的键盘操作可以查看 Keys 的源码