一、ActionChains类的介绍
ActionChains模拟鼠标操作的常用方法。使用click()方法可以进行鼠标的单击操作,但是鼠标操作还包括:双击、右击、悬停、鼠标拖动等功能,所以,ActionChains类提供了鼠标的常用方法:
1、perform():执行所有ActionChains中存储的行为
2、context_click():右击
3、double_click():双击
4、move_to_element():悬停
5、drag_and_drop(source, target):拖动
二、鼠标方法的使用
导入ActionChains类:
from selenium.webdriver import ActionChains
1、鼠标悬停
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
driver.get("https://www.runoob.com/html/html-tutorial.html")
driver.maximize_window()
# 定位到需要悬停的元素
hover = driver.find_element("xpath","//a[text()=' HTML / CSS']")
# 初始化一个ActionChains(driver)类
action = ActionChains(driver)
# 对定位的元素执行悬停操作
action.move_to_element(hover).perform()
# 强制等待5s,看一下效果
time.sleep(5)
# 关闭浏览器
driver.quit()
其中:
1)ActionChains(driver)
调用 ActionChains() 类,将浏览器驱动 driver 作为参数传入。
2)move_to_element(hover)
move_to_element() 方法用于模拟鼠标悬停操作,在调用时需要指定元素定位。
3)perform()
执行所有 ActionChains 中存储的行为,可以理解为是对整个操作的提交动作。
2、鼠标右击
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
# 定位到需要右击的元素
right_click = driver.find_element("xpath","//a[text()='新闻']")
# 初始化一个ActionChains(driver)类
action = ActionChains(driver)
# 对定位的元素执行右击操作
action.context_click(right_click).perform()
# 强制等待5s,看一下效果
time.sleep(5)
# 关闭浏览器
driver.quit()
3、鼠标双击
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
# 定位到鼠标需要双击的元素
double_click = driver.find_element("id","su")
# 初始化一个ActionChains(driver)类
action = ActionChains(driver)
# 对定位的元素执行双击操作
action.double_click(double_click).perform()
# 强制等待5s,看一下效果
time.sleep(5)
# 关闭浏览器
driver.quit()
4、鼠标拖动
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
"""
鼠标拖动操作
"""
driver = webdriver.Chrome()
driver.get("https://demos.telerik.com/kendo-ui/dragdrop/index")
driver.maximize_window()
# 定位拖动的元素
start_el = driver.find_element('id','draggable')
# 定位到拖动结束的地方
end_el = driver.find_element('id','droptarget')
#初始化一个类
actions = ActionChains(driver)
#执行拖动操作
actions.drag_and_drop(start_el,end_el).perform()
#强制等待5s
time.sleep(5)
关于鼠标操作方法的大致思路:
1、定位到需要进行鼠标操作的元素。
2、导入ActionChains类,初始化一个ActionChains类,将我们的浏览器驱动传进去。
3、调用ActionChains类下面的方法,需要啥操作就调用啥方法,然后将定位到的元素作为参数传入方法中。
4、再继续调用perform()方法,执行鼠标操作。
版权归原作者 测试小白00 所有, 如有侵权,请联系我们删除。