actionchains 是 selenium 里面专门处理鼠标相关的操作如:鼠标移动,鼠标按钮操作,按键和上下文菜单(鼠标右键)交互。
这对于做更复杂的动作非常有用,比如悬停和拖放。
actionchains 也可以和快捷键结合起来使用,如 ctrl,shif,alt 结合鼠标一起使用
当你使用 actionchains 对象方法,行为事件是存储在 actionchains 对象队列。当你使用
perform(),事件按顺序执行。如下,我们说的是actionchains实现元素的拖动,具体代码如下,实用干货!!!
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains #导入鼠标ActionChains 事件
dr= webdriver.Chrome()
url = "http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable"
#打开网页
dr.get(url)
dr.implicitly_wait(5)
# 切换到元素所在的frame
dr.switch_to.frame("iframeResult")
# 定位起点
start = dr.find_element_by_id("draggable")
# 定位终点
end = dr.find_element_by_id("droppable")
actions = ActionChains(dr)
actions.drag_and_drop(start, end)
# 执行鼠标拖动框
actions.perform()
#点击警告框的确定按钮
sleep(3)
dr.switch_to.alert.accept()