//www.greatytc.com/p/42f79c1592ae
ActionChains 类模拟鼠标操作的常用方法。
使用click() 方法可以模拟鼠标单击操作,但是鼠标操作还包括:右击、双击、悬停、鼠标拖动等功能。
所以,ActionChains 类提供了鼠标操作的常用方法:
perform():执行所有 ActionChains 中存储的行为。
context_click():右击。
double_click():双击。
drag_and_drop():拖动。
move_to_element():鼠标悬停。
注意:
1)首先需要引入 ActionChains 类。
fromseleniumimportwebdriverfromselenium.webdriver.common.action_chainsimportActionChains
ActionChains 类提供的鼠标方法与 click() 方法的用法有所不同。具体用法如下。
鼠标方法的使用:
1、鼠标右击
fromseleniumimportwebdriverfromselenium.webdriver.common.action_chainsimportActionChains# 引入 ActionChains 类driver=webdriver.Firefox()driver.get("http://yunpan.360.cn")#.......此处省略1W代码,哈哈哈# 定位到要右击的元素right_click=driver.find_element_by_id("xx")# 对定位到的元素执行鼠标右键操作ActionChains(driver).context_click(right_click).perform()#.......(省略其他代码)
其中:
1)ActionChains(driver)
调用 ActionChains() 类,将浏览器驱动 driver 作为参数传入。
2)c(right_click)
context_click() 方法用于模拟鼠标右击操作,在调用时需要指定元素定位。
3)perform()
执行所有 ActionChains 中存储的行为,可以理解为是对整个操作的提交动作。
2、鼠标悬停
鼠标悬停.png
move_to_element() 方法可以模拟鼠标悬停的动作,用法与 context_click() 相同。
# ......# 定位到要悬停的元素above=driver.find_element_by_id("xx")# 对定位到的元素执行悬停操作ActionChains(driver).move_to_element(above).perform()# ......
3、鼠标双击
# ......# 定位到要双击的元素double_click=driver.find_element_by_id("xx")# 对定位到的元素执行悬停操作ActionChains(driver).double_click(double_click).perform()# ......
4、鼠标拖放
dtag_and_drop(source,target) 在源元素上按住鼠标左键,然后移动到目标元素上释放。
两个参数:
source:鼠标拖动的源元素。
target:鼠标释放的目标元素。
# ......# 定位到元素的原位置element=driver.find_element_by_id("xx")# 定位到元素要移动到的目标位置target=driver.find_element_by_id("xx")# 执行元素的拖放操作ActionChains(driver).drag_and_drop(element,target).perform()# ......