# selenium可以模拟鼠标的操作。
# 使用步骤:
# 1.创建ActionChains对象,导包
# 2.使用ActionChains对象的方法,进行操作
# 3.通过ActionChains"提交"这些操作
from selenium import webdriver
from time import sleep
# 需要导包
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver. common.by import By
from selenium.webdriver. common.keys import Keys
# webdrive 获取浏览器对象
driver = webdriver.Chrome("chromedriver.exe") # 获取浏览器(Chrome)驱动
# 准备一个网址
url = "https://www.baidu.com/"
driver.get(url) # 将地址发送给浏览器(不打开新页面)
# 创建action对象
action = ActionChains(driver)
sleep(1)
# context_click() 右击-->此方法模拟鼠标右键点击效果
action.context_click(driver.find_element(By.ID, "kw"))
# 事件的操作必须执行
# perform()执行-->此方法用来执行以上所有鼠标方法
action.perform()
# double_click() 双击-->此方法模拟双标双击效果
# drag_and_drop() 拖动-->此方法模拟双标拖动效果
action.drag_and_drop(driver.find_element(By.LINK_TEXT, "hao123"), driver.find_element(By.ID, "kw"))# 将某个元素拖到某个元素然后放开
# move_to_element() 悬停-->此方法模拟鼠标悬停效果
action.move_to_element(driver.find_element(By.CLASS_NAME, "soutu-btn")).perform()
# 其他 可参见ActionChains的源码
sleep(5) # 推迟执行5秒
# 回收资源
driver.quit()