selenium---ActionChains
1. ActionChains简介
ActionChains是一种自动化底层交互的方法,比如鼠标移动,鼠标按键动作,按键和上下文菜单交互。这对于做更复杂的动作很有用,比如悬停和拖放。
2. 执行原理
当调用 ActionChains 对象上的操作方法时,不会立即执行,而是将操作存储在 ActionChains 对象的队列中。当调用 perform ()时,事件按照它们排队的顺序激发。
3. 使用方法
1. 链式用法
ActionChains(driver).move_to_element(element).click(element).perform()
2. 分布式用法
actions = ActionChains(driver)
actions.move_to_element(element)
actions.click(element)
actions.perfrom()
4. 具体方法
1. click( on_element=None ) 单击一个元素。
参数:
on_element:要点击的元素。如果没有,则单击当前鼠标位置。
2. click_and_hold( on_element=None ) 在元素上按住鼠标左键。
参数:
on_element:鼠标按下的元素。如果没有,则单击当前鼠标位置。
3. context_click( on_element=None ) 在元素上执行上下文单击(右键单击)。
参数:
on_element:要上下文单击的元素。如果没有,则单击当前鼠标位置。
4. double_click( on_element=None ) 双击一个元素。
参数:
on_element:要双击的元素。如果没有,则单击当前鼠标位置。
5. drag_and_drop(源,目标) 在源元素上按住鼠标左键,然后移动到目标元素并释放鼠标按钮。
参数:
来源:鼠标按下的元素。
目标:鼠标向上的元素。
6. drag_and_drop_by_offset(源, xoffset , yoffset ) 在源元素上按住鼠标左键,然后移动到目标偏移并释放鼠标按钮。
参数:
source:鼠标按下的元素。
xoffset:要移动到的 X 偏移量。
yoffset:要移动到的 Y 偏移量。
7. key_down( value , element=None ) 仅发送按键,不释放。只能与修饰键(Control、Alt 和 Shift)一起使用。
参数:
值:要发送的修饰键。值在Keys类中定义。
element:发送密钥的元素。如果没有,则向当前聚焦的元素发送一个键。
例如,按 ctrl+c:
ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
8. key_up( value , element=None ) 释放修饰键。
参数:
值:要发送的修饰键。值在 Keys 类中定义。
element:发送密钥的元素。如果没有,则向当前聚焦的元素发送一个键。
例如,按 ctrl+c:
ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
9. move_by_offset( xoffset , yoffset ) 将鼠标移动到与当前鼠标位置的偏移处。
参数:
xoffset:要移动到的 X 偏移量,作为正整数或负整数。
yoffset:要移动到的 Y 偏移量,作为正整数或负整数。
10. move_to_element( to_element ) 将鼠标移动到元素的中间。
参数:
to_element:要移动到的 WebElement。
11. move_to_element_with_offset( to_element , xoffset , yoffset ) 将鼠标移动指定元素的偏移量。偏移量相对于元素的左上角。
参数:
to_element:要移动到的 WebElement。
xoffset:要移动到的 X 偏移量。
yoffset:要移动到的 Y 偏移量。
12. pause(秒) 在指定的持续时间内暂停所有输入(以秒为单位)
13. perform()执行所有存储的操作。
14. release( on_element=None ) 在元素上释放按住的鼠标按钮。
参数:
on_element:鼠标悬停的元素。如果没有,则在当前鼠标位置释放。
15. reset_actions()清除已存储在本地和远程端的操作

浙公网安备 33010602011771号