目标 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 键盘-总结
|