selenium的ActionChains类来完成模拟鼠标操作
主要操作流程:
1.存储鼠标操作
2.perform()来执行鼠标操作
支持操作如下:
double_click 双击操作
context_click 右键操作
drag_and_drop 拖曳操作,然后释放按键
move_to_element() 鼠标悬停
from selenium.webdriver import Chrome
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
driver = Chrome()
driver.get("https://www.baidu.com")
# 定位到设置按钮,然后点击
setting_locator = driver.find_element_by_xpath("//a[contains(@href,'preferences.html')]")
# 鼠标悬浮
action = ActionChains(driver)
action.move_to_element(setting_locator).perform()
# 等待高级搜索出现
wait = WebDriverWait(driver,20)
wait.until(EC.element_to_be_clickable((By.XPATH,"//a[contains(@href,'advanced.html')]"))).click()