由Selenium的Actionchains类来完成模拟操作
主要操作流程:
1、存储鼠标操作
2、perform()来执行鼠标操作
支持的操作如下:
double_click 双击操作
context_click 右键操作
drag_and_drop 拖拽操作
move_to_element() 鼠标悬停
perform()
引入ActionChains类:
from selenium.webdriver.common.action_chains import ActionChains
AC.方法名1().context_click().perform()
以下以鼠标悬浮操作为例,访问百度首页,需要悬浮到登录按钮
from selenium import webdriver
driver= webdriver.Chrome()
driver.maximize_window()
driver.get("http://www.baidu.com")
#1.先找到鼠标要操作的元素(如上图)
ele = driver.find_element_by_xpath("//span[@id="s-usersetting-top"]")
#2.实例化ActionChains类
ac=ActionChains(driver)
#3.将鼠标操作添加到actions列表中
ac.move_to_element(ele)
#4.调用perform()来执行鼠标操作
ac.perform()
以上2,3,4,可以写成ActionChains(driver).move_to_element(ele).perform()
然后,假如要点击悬浮出来的下拉列表的某个字段的话,就先等待元素出现,然后点击那个字段就行了
#5.选择下拉列表中的 高级搜索
WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,"//a[text()="高级搜索"]")))
driver.find_element_by_xpath("//a[text()="高级搜索"]").click()