乐趣区

关于selenium:Selenium-API鼠标与键盘事件

鼠标事件

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

from selenium.webdriver.common.action_chains import ActionChains

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

ActionChains 罕用的办法:

序号 办法 / 属性 形容
1 click(self, on_element=None) 单击鼠标左键
2 click_and_hold(self, on_element=None) 点击鼠标左键,不松开
3 context_click(self, on_element=None) 点击鼠标右键
4 double_click(self, on_element=None) 双击鼠标右键
5 drag_and_drop(self, source, target) 拖拽到某个元素而后松开
6 drag_and_drop_by_offset(self, source, xoffset, yoffset) 拖拽到某个坐标而后松开
7 key_down(self, value, element=None) 按下键盘上的某个按键
8 key_up(self, value, element=None) 松开键盘上的某个按键
9 move_by_offset(self, xoffset, yoffset) 鼠标从以后地位挪动到某个坐标
10 move_to_element(self, to_element) 鼠标挪动到某个元素
11 move_to_element_with_offset(self, to_element, xoffset, yoffset) 挪动到间隔某个元素(左上角坐标)多少间隔的地位
12 perform(self) 执行动作链中的所有动作
13 def release(self, on_element=None) 在某个元素地位松开鼠标左键
14 send_keys(self, *keys_to_send) 发送某个键到以后焦点的元素
15 send_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()  # 敞开浏览器 
退出移动版