selenium鼠标操作篇:鼠标悬停和偏移、拖动、长按


一、鼠标悬停
ActionChains对象调用move_to_element(元素),然后执行perform()
示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common import action_chains

driver = webdriver.Firefox()
# 打开百度首页
driver.get("https://www.baidu.com")
# 定位首页的设置按钮
ele_setting = driver.find_element(By.XPATH, "//span[@id='s-usersetting-top']")
# 实例化ActionChains对象,并传入driver
action = action_chains.ActionChains(driver)
# 将鼠标悬停在设置按钮处
action.move_to_element(ele_setting).perform()

示例的最终效果为,鼠标停留在按钮元素处

 

二、鼠标偏移
ActionChains对象调用move_to_element_off_offset(元素未知,x,y),然后执行perform()
示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common import action_chains

driver = webdriver.Firefox()
# 打开百度首页
driver.get("https://www.baidu.com")
# 定位首页的设置按钮
ele_setting = driver.find_element(By.XPATH, "//span[@id='s-usersetting-top']")
ele_login = driver.find_element(By.XPATH, "//a[@class='s-top-login-btn c-btn c-btn-primary c-btn-mini lb']")
s_location = ele_setting.location
l_location = ele_login.location
# 实例化ActionChains对象,并传入driver
action = action_chains.ActionChains(driver)
# 将鼠标悬停在设置按钮处
action.move_to_element_with_offset(ele_setting,
                                   s_location["x"]-l_location["x"],
                                   s_location["y"]-l_location["y"]).perform()

 

三、鼠标长按
鼠标长按:ActionChains对象调用click_and_hold()方法,然后调用perform()执行。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common import action_chains

driver = webdriver.Firefox()
# 打开百度首页
driver.get("https://www.baidu.com")
# 定位首页的设置按钮
ele_setting = driver.find_element(By.XPATH, "//span[@id='s-usersetting-top']")
# 实例化ActionChains对象,并传入driver
action = action_chains.ActionChains(driver)
# 鼠标长按设置按钮
action.click_and_hold(ele_setting)

 

四、鼠标拖动
拖动:
1,drag_and_drop(soure=起始元素, target=结束元素)
2,drag_and_drop_by_offset(soure=起始元素,xoffset,yoffset),其中xoffset是水平便宜了,yoffset是垂直偏移量。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM