A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我是楠楠 黑马粉丝团   /  2019-9-11 16:02  /  1029 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

【郑州校区】鼠标和键盘操作
目标
1. 掌握鼠标操作的方法
2. 掌握键盘操作的方法
1. 鼠标操作
常见的鼠标操作有:点击、右击、双击、悬停、拖拽等,对于这些鼠标操作Selenium都封装了相应的操作方法。

1.1 为什么要操作鼠标?
现在Web产品中存在丰富的鼠标交互方式,作为一个Web自动化测试框架,需要应对这些鼠标操     作的应用场景。

1.2 鼠标操作的方法
鼠标执行-perform()
说明:在ActionChains类中所有提供的鼠标事件方法,在调用的时候所有的行为都存储在ActionChains对象中,
而perform()方法就是真正去执行所有的鼠标事件。

强调:必须调用perform()方法才能执行鼠标事件
1.1 鼠标右键-context_click()
说明:对于点击鼠标右键,如果弹出的是浏览器默认的菜单,Selenium没有提供操作菜单选项的方法;如果是自定义的右键菜单,则可以通过元素定位来操作菜单中的选项。
练习
需求:打开注册页面A,在用户名文本框上点击鼠标右键
代码实现关键点分析
1. 导包:from  selenium.webdriver.common.action_chains  import  ActionChains
2. 实例化ActionChains对象:action  =  ActionChains(driver)
3. 调用右键方法:action.context_click(element)
4. 执行:action.perform()
1.1 鼠标双击-double_click()
说明:模拟双击鼠标左键操作
练习
需求:打开注册页面A,输入用户名admin,暂停3秒钟后,双击鼠标左键,选中admin
1.1 鼠标拖动-drag_and_drop()
说明:模拟鼠标拖动动作,选定拖动源元素释放到目标元素
拖动关键点分析
1. 源元素        source  =  driver.find_element_by_id(xxx)
2. 目标元素  target  =  driver.find_element_by_id(xxx)
3. 调用方法  action.drag_and_drop(source,  target).perform()
练习
需求:打开‘drag.html’页面,把红色方框拖拽到蓝色方框上
1.1 鼠标悬停-move_to_element()
说明: 模拟鼠标悬停在指定的的元素上
练习
需求:打开注册页面A,模拟鼠标悬停在‘注册’按钮上
1.1 鼠标操作总结
1. 鼠标右击
2. 鼠标双击
3. 鼠标拖拽
4. 鼠标悬停
5. 鼠标执行
键盘操作
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml11364\wps28.png思考:如何实现复制、粘贴的操作?
说明:
1). 模拟键盘上一些按键或者组合键的输入  如:Ctrl+C  、Ctrl+V;
2). Selenium中把键盘的按键都封装在Keys类中
1.1 Keys
导包:from  selenium.webdriver.common.keys  import  Keys
1.1 常用的键盘操作
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)

提示:以上方法就不一个一个讲解了,因为调用方法都一样;
1.1 案例
需求:打开注册A页面,完成以下操作
1). 输入用户名:admin1,暂停2秒,删除1
2). 全选用户名:admin,暂停2秒
3). 复制用户名:admin,暂停2秒
4). 粘贴到密码框
示例代码
# 定位用户名
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')
1.1 键盘-总结
1. Keys类的作用
2. 键盘操作调用方法

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马