WebDriver鼠标、键盘操作

1. 鼠标事件

说明:WebDriver库对模拟鼠标操作封装的一些方法,此知识点作为了解

WebDriver操作鼠标方法

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

1. context_click()            右击 --> 此方法模拟鼠标右键点击效果
2. double_click()            双击 --> 此方法模拟双标双击效果
3. drag_and_drop()            拖动 --> 此方法模拟双标拖动效果
4. move_to_element()        悬停 --> 此方法模拟鼠标悬停效果
5. 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()

鼠标双击-double_click()

代码实现关键点分析

1. 导包...
2. 实例化...
3. 调用双击方法:element=Action.double_click(username)
4. 执行...

 鼠标拖动-drag_and_drop()

说明:模拟鼠标拖动动作,选定拖动源元素释放到目标元素

拖动关键点分析

1. 源元素   socure=driver.find_element_by_id(xxx)
2. 目标元素 target=driver.find_element_by_id(xxx)
3. 调用方法 Action.drag_and_drop(source,target).perform()

 鼠标悬停-move_to_element()

代码实现关键点分析

1. 导包...
2. 实例化...
3. 调用悬停方法:Action.move_to_element(element).perform()

2. 键盘操作

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

2.1 Keys类

导包:from selenium.webdriver.common.keys import Keys

2.2 常用的键盘操作

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)

提示:以上方法就不一个一个讲解了,因为调用方法都一样;

2.3 案例-1 注册页面A

需求:
    1). 输入用户名:admin1,暂停2秒 删除1
    2). 全选用户名:admin      暂停2秒
    3). 复制用户名:admin      暂停2秒
    4). 粘贴到密码框          暂停2秒
    5). 关闭浏览器

2.4 案例-1 方法示例

# 定位用户名
element=driver.find_element_by_id("userA")
# 输入用户名
element.send_keys("admin1")
# 删除1
element.send_keys(Keys.BACK_SPACE)
# 全选
element.send_keys(Keys.CONTROL,'a')
# 复制
element.send_keys(Keys.CONTROL,'c')
# 粘贴
driver.find_element_by_id('passwordA').send_keys(Keys.CONTROL,'v')

猜你喜欢

转载自blog.csdn.net/hudongcun/article/details/83477884