action_chains模块主要是通过ActionChains类模拟鼠标操作,单击、双击、右击、移动、拖拽等动作
常用的方法:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome()
# driver.set_page_load_timeout()
driver.get("https://blog.csdn.net/zzrs_xssh")
time.sleep(1)
elem1 = driver.find_element_by_xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h4/a')
elem2 = driver.find_element_by_xpath('//*[@id="mainBox"]/main/div[2]/div[4]/h4/a')
# 点击操作
ActionChains(driver).click(elem1).perform() # 单击
ActionChains(driver).double_click(elem1).perform() # 双击
ActionChains(driver).context_click(elem1).perform() # 右击
ActionChains(driver).click_and_hold(elem1) # 按下鼠标左键不松
# perform()方法,执行需要执行的动作,例如双击操作不调用perform方法是不会生效的
# 移动操作
ActionChains(driver).move_to_element(elem1).perform() # 把鼠标移动到elem1元素上
ActionChains(driver).move_by_offset(10, 20) # 从当前鼠标的位置向水平方向移动10个像素,向竖直方向移动20个像素
# 拖拽操作
ActionChains(driver).drag_and_drop(elem1, elem2).perform() # 把elem1元素拖拽到elem2上
ActionChains(driver).click_and_hold(elem1).release(elem2).perform()
# 在elem1元素上按下鼠标左键不松,在elem2元素上释放,实现拖拽操作
time.sleep(3)
driver.quit()