优秀的编程知识分享平台

网站首页 > 技术文章 正文

web自动化测试键盘操作事件

nanyue 2024-12-03 17:07:59 技术文章 8 ℃

Keyboard,键盘操作事件


键盘操作是通过使用低级界面执行的,该界面允许我们向网络浏览器提供虚拟化的设备输入…


键盘操作必须要的包


from selenium.webdriver.common.keys import Keys


sendKeys

遇到修饰符键,可以在sendKey中输入,模拟键盘按键的操作

更多WebDriver支持的全部键盘点击键列表https://www.w3.org/TR/webdriver/#keyboard-actions


import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(2)
# 输入回车键
driver.find_element_by_xpath('//input[@id="kw"]').send_keys('百度百科' + Keys.ENTER)
# 输入退格键
driver.find_element_by_xpath('//input[@id="kw"]').send_keys(Keys.BACKSPACE)
# 输入空格键
driver.find_element_by_xpath('//input[@id="kw"]').send_keys(Keys.SPACE)
# 输入F5刷新
driver.find_element_by_xpath('//input[@id="kw"]').send_keys(Keys.F5)
# 输入回退键
driver.find_element_by_xpath('//input[@id="kw"]').send_keys(Keys.ESCAPE)
# 输入制表键
driver.find_element_by_xpath('//input[@id="kw"]').send_keys(Keys.TAB)

F关联的所有键全部都下拉展示出来:

很多键盘上的按键方法,对应真实键盘的意思就行:


keyDown

模拟按下修改键(CONTROL,SHIFT,ALT)的动作

CONTROL代表的就是键盘上的Ctrl键


import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains


driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(2)
driver.find_element_by_xpath('//input[@id="kw"]').send_keys('百度百科' + Keys.ENTER)

# 全选操作
ActionChains(driver).key_down(Keys.CONTROL).send_keys('a').perform()

当然也可以在send_keys中输入后直接进行操作:


# 全选操作
driver.find_element_by_xpath('//input[@id="kw"]').send_keys('百度百科' + Keys.CONTROL, 'a')


keyUp

模拟修改键(CONTROL,SHIFT,ALT)释放操作


import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains


driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(2)
input_data = driver.find_element_by_xpath('//input[@id="kw"]')
action = ActionChains(driver)
action.key_down(Keys.SHIFT).send_keys_to_element(input_data, 'qwer').key_up(Keys.SHIFT).send_keys('qwer').perform()

运行后的展示结果页面:

首先使用key_down方法按住shift键盘并输入大写的QWER,其次使用key_up方法取消按住shift键并输入小写的qwer


action.key_down(Keys.SHIFT).send_keys_to_element(input_data, 'qwer').key_up(Keys.SHIFT).send_keys('qwer').perform()


clear

针对输入框清除已输入的内容及输入框中默认存在的内容

仅适用于可编辑和可交互的元素,否则Selenium返回错误(无效的元素状态(或)不可交互的元素)


import time
from selenium import webdriver


driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(2)
input_data = driver.find_element_by_xpath('//input[@id="kw"]')
input_data.send_keys('selenium')

# 清空输入框的数据
input_data.clear()

以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,评论区留言会及时修正发布,谢谢!


未完,待续…
一直都在努力,希望您也是!

最近发表
标签列表