Selenium action_chains用法
作者寄语: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自动化测试必须掌握的技巧之一。
******本文属于原创作品,转载请注明出处******