0


selenium中键盘操作:Keys类

一、前言

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

本文转载自: https://blog.csdn.net/qq_49624649/article/details/123450166
版权归原作者 测试小白00 所有, 如有侵权,请联系我们删除。

“selenium中键盘操作:Keys类”的评论:

还没有评论