一、鼠标悬停
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是垂直偏移量。