一、前言
selenium提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入Keys类。
from selenium.webdriver.common.keys import Keys
二、常用的非组合键操作
1、回车键:Keys.ENTER
2、删除键:Keys.BACK_SPACE
3、空格键:Keys.SPACE
4、制表键:Keys.TAB
5、回退键:Keys.ESCAPE
6、刷新键:Keys.F5
比如百度搜索中,可以利用Keys.ENTER回车键代替点击搜索框,代码如下:
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
time.sleep(5)
# 定位百度输入框,输入内容
driver.find_element("id","kw").send_keys("学习软件测试")
# 定位百度输入框,输入回车键,以此代替点击搜索按钮
driver.find_element("id","kw").send_keys(Keys.ENTER)
# 初始化ActionChains类,输入回车键,执行回车键操作,和上面一行代码的作用一样
# ActionChains(driver).send_keys(Keys.ENTER).perform()
三、常用的组合键操作
我们经常使用的Ctrl+A,Ctrl+C都是组合键。在使用按键操作的时候我们需要借助一下send_keys()来模拟操作。Keys.CONTROL也就是我们键盘上的Ctrl键,下面是几个常用的组合键
1、全选:send_keys(Keys.CONTROL,'a')
2、复制:send_keys(Keys.CONTROL,'c')
3、粘贴:send_keys(Keys.CONTROL,'v')
4、剪切:send_keys(Keys.CONTROL,'x')
注意:send_keys()有两个参数。
同样已百度为例,借助send_keys()来进行复制粘贴等操作,代码如下:
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
time.sleep(5)
driver.find_element("id", "kw").send_keys("测试工程师")
driver.find_element("id", "kw").send_keys(Keys.CONTROL, 'a')
driver.find_element("id", "kw").send_keys(Keys.CONTROL, 'c')
driver.find_element("id", "kw").send_keys(Keys.CONTROL, 'v')
driver.find_element("id", "kw").send_keys(Keys.CONTROL, 'v')
运行结果图,最终粘贴了两次:
TODO:还有另一种操作方法,可以利用ActionChains类下面的key_down和key_up方法进行操作,代码如下:
其中:
1、key_down(Keys.CONTROL) 按下Ctrl键
2、send_keys('a') 输入键盘A键
3、key_up(Keys.CONTROL) 在松开Ctrl键
4、perform() 执行之前存储的操作
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(10)
driver.get("https://www.baidu.com")
# 定位百度输入框输入内容
driver.find_element('id', 'kw').send_keys("测试工程师")
# 初始化一个ActionChains类
action = ActionChains(driver)
# 选中内容
action.key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
time.sleep(3)
# 复制内容
action.key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
time.sleep(3)
# 粘贴内容
action.key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
action.key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
版权归原作者 测试小白00 所有, 如有侵权,请联系我们删除。