首页 > 代码库 > 【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自动化——鼠标事件和键盘事件】