selenium实战之模拟事件处理
一、自动化测试实战之 ActionChains 模拟用户行为
- 需求
- 需要模拟鼠标操作才能进行的情况,比如鼠标单击、双击、鼠标右键,鼠标拖拽等
- 解决
selenium.webdriver.common.action_chains.ActionChains(driver)
需要导入ActionChains包
from selenium.webdriver.common.action_chains import ActionChains
- 执行原理
- 调用 ActionChains 的方法时不会立即执行,会所有的操作按顺序存放到一个队列里,当调用perform()方法时,队列中的事件会依次执行
- 支持链式写法或者分布写法
- ActionChains(driver).click(ele).perform()
- 鼠标和键盘方法列表
| 方法 |
作用 |
| perform() |
执行链中的所有动作 |
| click(on_element=None) |
单击鼠标左键 |
| context_click(on_element=None) |
点击鼠标右键 |
| double_click(on_element=None) |
双击鼠标左键 |
| move_to_element(to_element) |
鼠标移动到某个元素 |
| ele.send_keys(keys_to_send) |
发送某个词到当前焦点的元素 |
| click_and_hold(on_element=None) |
点击鼠标左键,不松开 |
| release(on_element=None) |
在某个元素位置松开鼠标 |
| key_down(value, element=None) |
按下键盘上某个键 |
| key_up(value, element=None) |
松开某个键 |
二、鼠标实战之(hover)菜单栏弹出
- 导入 ActionChains 类
from selenium.wedriver.common.acton_chains import ActionChains
- ele1 = move_to_element(to_element) 鼠标移动到某个元素
ActionChains(driver).move_to_element(ele1).perform()