一,鼠标操作
1)实现鼠标操作的代码步骤:
- 导包:from selenium.webdriver.common.action_chains import ActionChains
- 实例化ActionChains对象(实例化一个鼠标对象,driver是浏览器对象):Action=ActionChains(driver)
- 调用右键方法(username是用某方法定位到的元素对象):element=Action.context_click(username)
- 执行该操作:element.perform()
- 或者把3,4步骤合写,右键该对象并执行:Action.context_click(username).perform()
2)WebDriver常见鼠标操作方法:
- context_click() 右击 --> 此方法模拟鼠标右键点击效果,注意在ActionChains类中的鼠标右键方法是个已知的bug,因为它能点击右键出现菜单,但无法选择右键菜单选项
- double_click() 双击 --> 此方法模拟双标双击效果
- drag_and_drop() 拖动 --> 此方法模拟双标拖动效果
- move_to_element() 悬停 --> 此方法模拟鼠标悬停效果
- perform() 执行 --> 此方法用来执行以上所有鼠标方法,所有的方法都需要执行才能生效
双击与右击代码类似,在1)中已经提到过了,我们略过,先看一下 拖动 的代码:
拖动: 模拟鼠标拖动动作,选定拖动 源元素 释放到 目标元素
- 源元素 socure=driver.find_element_by_id(xxx)
- 目标元素 target=driver.find_element_by_id(xxx)
- 调用方法 Action.drag_and_drop(source,target).perform()
悬停: 模拟鼠标悬停在选中的元素,如将模拟鼠标悬停在网页某按钮上,会显示一些提示
- 导包…
- 实例化…
- 调用悬停方法:Action.move_to_element(element).perform()
二,键盘操作
1)实现键盘操作的代码步骤:
- 导包Keys类: from selenium.webdriver.common.keys import Keys
- 定位用户名元素: element=driver.find_element_by_id(“userA”)
- 输入用户名"admin1":element.send_keys(“admin1”)
- 删除“1”(删除“1”后用户名为“admin”):element.send_keys(Keys.BACK_SPACE)
- 全选(模拟按键ctrol+A键选中“admin”):element.send_keys(Keys.CONTROL,‘a’)
- 复制(模拟按键ctrol+C键复制“admin”):element.send_keys(Keys.CONTROL,‘c’)
- 粘贴(模拟按键ctrol+V键复制“admin”到密码元素处):driver.find_element_by_id(‘passwordA’).send_keys(Keys.CONTROL,‘v’)
2)常见键盘操作方法:
- send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
- send_keys(Keys.SPACE) 空格键(Space)
- send_keys(Keys.TAB) 制表键(Tab)
- send_keys(Keys.ESCAPE) 回退键(Esc)
- send_keys(Keys.ENTER) 回车键(Enter)
- send_keys(Keys.CONTROL,‘a’) 全选(Ctrl+A)
- send_keys(Keys.CONTROL,‘c’) 复制(Ctrl+C)
调用方法和1)中的示例都一样,提示,不需要像鼠标操作一样还得.perform()执行操作。