复习:WebDriver鼠标、键盘操作

现在Web产品中提供了丰富的鼠标交互方式,如:双击、悬停、拖拽等功能,做为Web产品测试框架

操作原理

1) selenium框架提供了ActionChains类支持鼠标操作。
2) 要执行的操作以队列的方式保存在ActionChains对象中。
3) 调用ActionChains中的perform()方法可以按序执行队列动作。

操作步骤

1) 导入ActionChains类:from selenium.webdriver import ActionChains
2) 创建ActionChains对象   参数为浏览器对象
    action = ActionChains(driver)
3) 定位到要进行鼠标操作的元素并向ActionChains对象添加动作
    el = driver.find_element_by_xxx(“value”)
    action.move_to_element(el)
4) 顺序执行保存在队列中的操作
    action.perform()

WebDriver操作鼠标方法

说明:在WebDriver中将操作鼠标的方法封装在ActionChains类中

1. click() 左击 --> 此方法模拟鼠标左键点击效果
2. context_click() 右击 --> 此方法模拟鼠标右键点击效果
3. double_click() 双击 --> 此方法模拟双标双击效果
4. drag_and_drop() 拖动 --> 此方法模拟双标拖动效果
5. move_to_element() 悬停 --> 此方法模拟鼠标悬停效果
6. perform() 执行 --> 此方法用来执行以上所有鼠标方法

鼠标执行-perform()

在ActionChains类中所有提供的鼠标事件方法,在调用的时候所有的行为都存储在ActionChains类中,
      而perform()方法就是执行所有ActionChains中的行为

提示:必须调用perform()方法才能执行鼠标事件
代码实现
1. 导包:from selenium.webdriver.common.action_chains import ActionChains
2. 实例化ActionChains对象:Action=ActionChains(driver)
3. 调用右键方法:element=Action.context_click(username)
4. 执行:element.perform()

键盘操作

1). 模拟键盘上一些按键或者组合键的输入 如:Ctrl+C 、Ctrl+V;
2). WebDriver中对键盘的操作都封装在Keys类中
from selenium.webdriver.common.keys import Keys

常用的键盘操作

1. send_keys(Keys.BACK_SPACE)删除键(BackSpace) 
2. send_keys(Keys.SPACE)空格键(Space) 
3. send_keys(Keys.TAB)制表键(Tab) 
4. send_keys(Keys.ESCAPE)回退键(Esc) 
5. send_keys(Keys.ENTER)回车键(Enter) 
6. send_keys(Keys.CONTROL,'a') 全选(Ctrl+A) 
7. send_keys(Keys.CONTROL,'c')复制(Ctrl+C)

示例

# 定位用户名
element=driver.find_element_by_id("kw")
# 输入用户名
element.send_keys("python")
# 删除1
element.send_keys(Keys.BACK_SPACE)
# 全选
element.send_keys(Keys.CONTROL,'a')
# 复制
element.send_keys(Keys.CONTROL,'c')
# 粘贴
element.send_keys(Keys.CONTROL,'v')
posted @ 2021-11-14 00:01  zxy_ang  阅读(224)  评论(0)    收藏  举报