ActionChains类提供了鼠标操作的常见方法:
perform():执行 ActionChains 类中存储的所有行为。执行鼠标操作
click(element) -- 点击
context_click(element):右击
double_click(element):双击
move_to_element():鼠标悬停
click_and_hold(element) -- 按住左键不松
release() -- 释放按键
drag_and_drop(src, dest) -- 拖拽
pause() -- 暂停
send_keys_to_element(element, value) -- 往元素上输入内容
scroll_to_element() -- 元素滚动到可见区域
使用步骤:
1、实例化ActionChains类
2、调用你想执行的鼠标操作(可以有多个)
3、调用perform() -- 真正执行鼠标操作。
请注意:当你在执行鼠标操作有关的代码时,请不要动你的鼠标。
selenium3.X ActionChains只是给web自动化用的,鼠标操作。
selenium4.X/appium2.X 兼容了app的触屏操作(appium1.X的触屏操作原来是TouchAction类和MultiAction类)。
链式调用
ActionChains(driver).move_to_element(ele).pause(0.3).click(ele).perform()
鼠标操作的方法返回的都是self
1 import time
2 from selenium.webdriver.common.action_chains import ActionChains
3 from selenium import webdriver
4 from selenium.webdriver.common.by import By
5 from selenium.webdriver.support.wait import WebDriverWait
6 from selenium.webdriver.support import expected_conditions as EC
7
8
9 driver =webdriver.Chrome()
10 driver.maximize_window()
11 driver.get("https://www.xxxx.com/")
12
13 wait = WebDriverWait(driver, 10)
14 # 1、实例化ActionChains类
15 ac = ActionChains(driver)
16
17 # 找到鼠标要悬浮的元素
18 loc = (By.XPATH,'//*[@id="goodsStandardImg-18"]')
19 wait.until(EC.visibility_of_element_located(loc))
20 ele = driver.find_element(*loc)
21
22 # 2、链式调用,鼠标的操作
23 ac.move_to_element(ele).pause(0.3).click(ele)
24
25 # 3、调用perform()
26 ac.perform()
27
28 # 链式调用
29 # ActionChains(driver).move_to_element(ele).pause(0.3).click(ele).perform()
30
31 time.sleep(5)
32 driver.quit()