首页 > 代码库 > 【selemium自动化——鼠标事件和键盘事件】
【selemium自动化——鼠标事件和键盘事件】
一、【鼠标事件】
关于鼠标的操作包含在ActionChains 类中。
ActionChains 类鼠标操作的常用方法:
context_click() 右击
double_click() 双击
drag_and_drop() 拖动
move_to_element() 鼠标悬停在一个元素上
click_and_hold() 按下鼠标左键在一个元素上
代码示例:
#引入ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
......
#定位到要操作的元素
abc=driver.find_element_by_id("xx")
#对定位到的元素进行鼠标右击操作
ActionChains(driver).context_click(right).perform() #所有的操作行为都存储在 actionchains 对象。通过 perform()执行存储的行为
#对定位到的元素进行鼠标双击操作
ActionChains(driver).double_click(double).perform()
#对定位到的元素进行鼠标拖放操作
#对元素的原始位置定位
element = driver.find_element_by_name("xxx")
#对目标元素进行定位
target = driver.find_element_by_name("xxx")
ActionChains(driver).drag_and_drop(element, target).perform()
#对定位的元素执行鼠标移动到上面的操作
ActionChains(driver).move_to_element(above).perform()
#对定位到的元素按下鼠标左键
ActionChains(driver).click_and_hold(left).perform()
二、【键盘事件】
webdriver 的 Keys()类提供键盘上所有按键的操作
代码示例:
#coding=utf-8
from selenium import webdriver
#引入 Keys 类包
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
#输入框输入内容
driver.find_element_by_id("kw").send_keys("selenium")
time.sleep(3)
#删除多输入的一个 m
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
time.sleep(3)
#输入空格键+“教程”
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys(u"教程")
time.sleep(3)
#ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘a‘)
time.sleep(3)
#ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘x‘)
time.sleep(3)
#输入框重新输入内容,搜索
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘v‘)
time.sleep(3)
#通过回车键盘来代替点击操作
driver.find_element_by_id("su").send_keys(Keys.ENTER)
time.sleep(3)
driver.quit()
经常使用到的键盘操作:
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)
send_keys(Keys.CONTROL,‘x‘) 剪切(Ctrl+X)
send_keys(Keys.CONTROL,‘v‘) 粘贴(Ctrl+V)
【selemium自动化——鼠标事件和键盘事件】