Selenium API-鼠标与键盘事件

鼠标事件

Selenium 中的鼠标事件被封装在 ActionChains 类中,导入方式:

from selenium.webdriver.common.action_chains import ActionChains

官方文档:selenium.webdriver.common.action_chains

ActionChains 常用的方法:

序号方法/属性描述
1click(self, on_element=None)单击鼠标左键
2click_and_hold(self, on_element=None)点击鼠标左键,不松开
3context_click(self, on_element=None)点击鼠标右键
4double_click(self, on_element=None)双击鼠标右键
5drag_and_drop(self, source, target)拖拽到某个元素然后松开
6drag_and_drop_by_offset(self, source, xoffset, yoffset)拖拽到某个坐标然后松开
7key_down(self, value, element=None)按下键盘上的某个按键
8key_up(self, value, element=None)松开键盘上的某个按键
9move_by_offset(self, xoffset, yoffset)鼠标从当前位置移动到某个坐标
10move_to_element(self, to_element)鼠标移动到某个元素
11move_to_element_with_offset(self, to_element, xoffset, yoffset)移动到距离某个元素(左上角坐标)多少距离的位置
12perform(self)执行动作链中的所有动作
13def release(self, on_element=None)在某个元素位置松开鼠标左键
14send_keys(self, *keys_to_send)发送某个键到当前焦点的元素
15send_keys_to_element(self, element, *keys_to_send)发送某个键到指定元素

注意:当整个动作链编写完成之后,必须调用 perform() 方法来执行所有动作,否则动作不生效

实例操作

# 模拟事件:鼠标移动到商品分类列表--食物,在二级分类列表中点击“小龙虾”
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()  # 打开浏览器
driver.maximize_window()  # 浏览器最大化
driver.get("https://www.jd.com")  # 跳转至京东首页
sleep(2)
element = driver.find_element_by_xpath("//li[@data-index='11']")  # 移动到的元素
action = ActionChains(driver).move_to_element(element)  # 动作:移动鼠标到指定元素
action.perform()  # 执行所有动作
sleep(2)
target_element = driver.find_element_by_link_text("小龙虾")  # 目标元素
target_element.click()  # 点击
sleep(2)

driver.quit()

键盘事件

Selenium 中的键盘事件被封装在 Keys 类中,导入方式:

from selenium.webdriver.common.keys import Keys

官方文档:selenium.webdriver.common.keys

实例操作

# 模拟事件:在百度输入框中输入:selenium 自动化测试,按2次删除键,全选,剪切,复制
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()  # 打开浏览器
driver.maximize_window()  # 浏览器最大化
driver.get("https://www.baidu.com/")  # 跳转至百度首页
sleep(1)
element = driver.find_element_by_id("kw")
element.send_keys("selenium 自动化测试")
sleep(1)
element.send_keys(Keys.BACKSPACE)  # 按删除键
sleep(1)
element.send_keys(Keys.BACKSPACE)  # 按删除键
sleep(1)
element.send_keys(Keys.CONTROL, "a")  # 按Ctrl + a
sleep(1)
element.send_keys(Keys.CONTROL, "x")  # 按Ctrl + x
sleep(1)
element.send_keys(Keys.CONTROL, "v")  # 按Ctrl + v
sleep(3)

driver.quit()  # 关闭浏览器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖遥Janic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值