鼠标事件
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() # 敞开浏览器