作者寄语:Don't worry, be happy!

1 、什么是action_chains?
ActionChains 是一种底层交互的方式,例如移动鼠标、点击左键、右键 、拖曳 、键盘敲击等等;通过这些函数方法 ,可以进行组合已达到更加负责的操作 。

2、__init__(driver)
初始化ActionChains,即创建ActionChains对应。

from selenium import webdriver
from selenium.webdriver import ActionChains

chrome_driver = webdriver.Chrome('"D:\\material\\selenium\\web_driver\\chromedriver.exe"') # WebDriver对象
action_chains = ActionChains(chrome_driver) # 创建action_chains对象

3、perform()
当用户调用ActionChains方法执行动作时,这些动作会被存储到一个ActionChains对象的队列中 ,此时并不会真正执行这些动作。
而当调用perform()时 ,ActionChains对象中动作队列会被一一执行 。

action_chains.move_to_element(ele) # 移动鼠标到指定元素
action_chains.click(ele) # 点击此元素

# 执行perform前,将移动鼠标和点击这两个个动作存储在action_chains对象中,但是并未执行这两个动作
action_chains.perform() # perform执行action_chains对象存储的动作

如果仅执行一个动作 ,也可使用匿名函数写法 。

ActionChains(chrome_driver).move_to_element(ele).perform() # 移动鼠标到指定元素

4 、reset_actions()
清空ActionChains对象中原存储的所有动作。

action_chains.move_to_element(ele) # 移动鼠标到指定元素
action_chains.click(ele) # 点击此元素
action_chains.reset_actions() # 清空上述两个动作

5、click(on_element)
点击鼠标左键动作。如果on_element不存在此元素,将点击当前鼠标位置 。

ActionChains(chrome_driver).click(ele).perform() # 点击此元素并执行

6、click_and_hold(on_element)
按住鼠标左键(保持按住,没有松开左键)动作。如果on_element不存在此元素 ,将点击当前鼠标位置。通常与release(松开按键动作)一起使用

ActionChains(chrome_driver).click_and_hold(signin_btn_ele).perform() # 按住sign in按钮

7 、context_click(on_element)
点击鼠标右键动作 。如果on_element不存在此元素,将点击当前鼠标位置。

ActionChains(chrome_driver).context_click(signin_btn_ele).perform() # 鼠标右键点击sign in按钮

8、double_click(on_element)
双击鼠标左键动作。如果on_element不存在此元素,将点击当前鼠标位置 。

ActionChains(chrome_driver).double_click(signin_btn_ele).perform() # 双击鼠标左键点击sign in按钮

9、drag_and_drop(source, target)
拖曳鼠标左键动作。将想要拖曳的元素(source)拖曳到目标元素位置(target)

ActionChains(chrome_driver).drag_and_drop(source_ele, target_ele).perform()

或者执行两步也可实现

action_chains.click_and_hold(source_ele) # 按住鼠标左键
action_chains.release(target_ele) # 释放按住的鼠标左键
action_chains.perform()

10 、key_down(value, element)
按住键盘按键(不包含松开)动作。通常与key_up(松开按键动作)一起使用 。

ActionChains(chrome_driver).key_down(Keys.CONTROL	,text_ele).send_keys('a').key_up(Keys.CONTROL).perform() # 选中全部text_ele元素文字 Ctrl+A组合键

11、key_up(value, element)
松开键盘按键动作。通常与key_down(按住键盘按键动作)一起使用

12、move_to_element(to_element)
移动鼠标到指定元素中间位置上。

ActionChains(chrome_driver).move_to_element(ele).perform() # 移动鼠标到指定元素

13 、pause(seconds)
暂停所有操作xx秒 。

action_chains.move_to_element(ele) # 移动鼠标到指定元素
action_chains.pause(3) # 暂停3秒
action_chains.click(ele) # 点击此元素
action_chains.perform() # 执行上述两个动作

14、release(on_element)
松开鼠标按键动作 。如果on_element没有此元素,则松开鼠标按键当前位置的元素

见#6、click_and_hold(on_element)

15 、send_keys(*keys_to_send)
发送按键到当前焦点所在的元素上。

见#10、key_down(value, element)

16、send_keys_to_element(element, *keys_to_send)
发送按键到指定元素上。

见#10、key_down(value, element)

总结:
Selenium action_chains 的用途非常广泛,属于底层操作的一种 。
学习Selenium自动化测试必须掌握的技巧之一。

******本文属于原创作品 ,转载请注明出处******

文章来源于网络,如有侵权请联系站长QQ61910465删除
本文版权归趣KUAI排www.SEOguruBlog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ→61910465