selenium中键盘 *** 作:Keys类

selenium中键盘 *** 作:Keys类,第1张

一、前言

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()

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/733220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存