一、鼠标操作
在Webdriver中,鼠标操作的方法封装在ActionChains类中。ActionChains类常用的方法有:
1、perform() 执行所有ActionChains中存储的行为
2、context_click() 单击右键
3、double_click() 双击左键
4、drag_and_drop() 鼠标单击左键选中元素后拖动到目标位置
5、move_to_element() 鼠标悬停
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get('http://www.xxxxx.com/')
# ......
# 定位到要右击的元素
r_click = driver.find_element_by_xpath('//a[@class="sabX3Rn"]')
# 对定位到的元素进行单击右键操作
ActionChains(driver).context_click(r_click).perform()
# 定位到要悬浮的元素
move = driver.find_element_by_xpath('//span[@class="DIcOFyb"]/i')
# 对定位到的元素进行鼠标悬停操作
ActionChains(driver).move_to_element(move).perform()
# 定位到要双击的元素
double_click = driver.find_element_by_xpath('//ul[@class="fOHAbxb"]/li[3]/a/span/span')
# 对定位到的元素进行双击操作
ActionChains(driver).double_click(double_click).perform()
# 定位到鼠标移动前的元素
source = driver.find_element()
# 定位到鼠标移动目标位置的元素
target = driver.find_element()
# 执行鼠标拖动操作
ActionChains(driver).drag_and_drop(source, target).perform()
driver.quit()
二、键盘操作
在Webdriver中,键盘操作的方法封装在Keys类中。Keys类几乎提供了键盘上所有的按键操作,键盘操作可以用send_keys()方法模拟键盘输入。常用键盘操作有:
1、send_keys(Keys.BACKSPACE) 删除BackSpace
2、send_keys(Keys.SPACE) 空格Space
3、send_keys(Keys.CONTROL, 'a') 全选Ctrl+A
4、send_keys(Keys.CONTROL, 'x') 剪切Ctrl+X
5、send_keys(Keys.CONTROL, 'c') 复制Ctrl+C
6、send_keys(Keys.CONTROL, 'v') 粘贴Ctrl+V
7、send_keys(Keys.ENTER) 回车Enter
8、send_keys(Keys.ESCAPE) 回退Esc
9、send_keys(Keys.TAB) 制表键tab
10、send_keys(Keys.F1) F1
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
# 输入字符串python+
driver.find_element_by_id('kw').send_keys('python+')
# 删除最后一个字符‘+’
driver.find_element_by_id('kw').send_keys(Keys.BACKSPACE)
# 空格Space
driver.find_element_by_id('kw').send_keys(Keys.SPACE)
# 全选Ctrl+A
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
# 剪切Ctrl+X
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x')
# 粘贴Ctrl+V
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v')
# 输入字符串selenium
driver.find_element_by_id('kw').send_keys('selenium')
# 全选Ctrl+A
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
# 复制Ctrl+C
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'c')
# 粘贴Ctrl+V
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v')
# 回车Enter
driver.find_element_by_id('kw').send_keys(Keys.ENTER)
# 回退Esc
driver.find_element_by_id('kw').send_keys(Keys.ESCAPE)
# 制表键tab
driver.find_element_by_id('kw').send_keys(Keys.TAB)
# F1
driver.find_element_by_id('kw').send_keys(Keys.F1)