Selenium键盘事件
Posted lc-blogs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium键盘事件相关的知识,希望对你有一定的参考价值。
前言:执行自动化测试过程中遇到操作键盘的按键,例如:全选、复制、剪切、粘贴、空格、删除等等操作,如何模拟键盘中的按键操作?
1、键盘操作分类
- send_keys() # 输入内容
- send_keys(Keys.BACK_SPACE) # 删除键
- send_keys(Keys.SPACE) # 空格键
- send_keys(Keys.TAB) # 制表键
- send_keys(Keys.ESCAPE) # 回退键ESC
- send_keys(Keys.ENTER) # 回车键
- send_keys(Keys.CONTROL,\'a\') # 全选(Ctrl+A)
- send_keys(Keys.CONTROL,\'c\') # 复制(Ctrl+C)
- send_keys(Keys.CONTROL,\'x\') # 剪切(Ctrl+X)
- send_keys(Keys.CONTROL,\'v\') # 粘贴(Ctrl+V)
- send_keys(Keys.LEFT) # 指针左移
- send_keys(Keys.RIGHT) # 指针右移
- send_keys(Keys.UP) # 指针上移
- send_keys(Keys.DOWN) # 指针下移
提示:selenium 提供 Keys 类包用于模拟键盘的按键操作,在使用时需要先导入
2、键盘操作方法
# 打开Chrome浏览器
driver = webdriver.Chrome("../login/chromedriver.exe")
# 浏览器访问百度
driver.get(r"D:\\ac\\test.html")
# 根据id定位百度输入框并输入abcd
driver.find_element_by_id("u").send_keys("abcd")
# 根据id定位百度输入框,Keys.BACK_SPACE模拟键盘删除最后一个字母d
driver.find_element_by_id("u").send_keys(Keys.BACK_SPACE)
time.sleep(1)
# 根据id定位用户名输入框,Keys.SPACE模拟键盘的空格键
driver.find_element_by_id("u").send_keys(Keys.SPACE)
time.sleep(1)
# 根据id定位用户名输入框,在原来的abc 后面输入123
driver.find_element_by_id("u").send_keys("123")
time.sleep(1)
# 根据id定位用户名输入框,模拟键盘ctrl+a选中用户名输入框所有数据
driver.find_element_by_id("u").send_keys(Keys.CONTROL, \'a\')
time.sleep(1)
# 根据id定位用户名输入框,模拟键盘ctrl+c复制选中的用户名输入框的内容
driver.find_element_by_id("u").send_keys(Keys.CONTROL, \'c\')
time.sleep(1)
# 根据id定位用户名输入框,模拟键盘的Tab键切换到密码输入框
driver.find_element_by_id("u").send_keys(Keys.TAB)
time.sleep(1)
# 根据id定位密码输入框,模拟键盘ctrl+v粘贴复制的内容到密码输入框
driver.find_element_by_id("p").send_keys(Keys.CONTROL, \'v\')
time.sleep(1)
# 根据id定位用户名输入框,模拟键盘ctrl+a选中用户名输入框所有数据
driver.find_element_by_id("u").send_keys(Keys.CONTROL, \'a\')
time.sleep(1)
# 根据id定位用户名输入框,模拟键盘ctrl+x剪切上一步选中的用户名输入框所有数据
driver.find_element_by_id("u").send_keys(Keys.CONTROL, \'x\')
time.sleep(1)
# 根据id定位密码输入框,模拟键盘ctrl+v粘贴剪切的内容到密码输入框
driver.find_element_by_id("p").send_keys(Keys.CONTROL, \'v\')
time.sleep(1)
# 根据id定位密码输入框,模拟键盘的左键指针向左移动一位
driver.find_element_by_id("p").send_keys(Keys.LEFT)
time.sleep(1)
# 根据id定位密码输入框,模拟键盘的左键指针向右移动一位
driver.find_element_by_id("p").send_keys(Keys.RIGHT)
time.sleep(1)
# 根据id定位密码输入框,模拟键盘的Enter键
driver.find_element_by_id("p").send_keys(Keys.ENTER)
- send_keys支持按键的组合传递,例如上述的粘贴【Ctrl+V】操作
driver.find_element_by_id("p").send_keys(Keys.CONTROL, \'v\')
- send_keys通过 + 号做连接组合按键也是可行的
driver.find_element_by_id("p").send_keys(Keys.CONTROL+\'v\')
- 如果想同时按下三个或更多按键键,则在括号中使用 , 或 + 号追加参数即可,例如在输入框同时输入a、b、c
driver.find_element_by_id("p").send_keys(\'a\', \'b\', \'c\')
driver.find_element_by_id("p").send_keys(\'a\'+\'b\'+\'c\')
3、html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=dvice-width, initial-scale=1">
<title>登录页面</title>
</head>
<body>
<form method="post" action="http://www.baidu.com"><!--注意需要用table-->
<table align="center" >
<tr>
<th align="center" colspan="2">
<h1>管理员登陆</h1><!--h/p标签自动换行换段-->
</th>
</tr>
<tr>
<td align="center">登录名:</td>
<td><input type="text" placeholder="" name="username" id="u"></td>
</tr>
<tr>
<td align="center" >密 码:</td>
<td><input type="text" name="password" id="p"></td>
</tr>
<tr>
<td align="center"><input type="checkbox" value="1" checked>记住密码</td>
<td align="center"><a href="">忘记密码</a></td>
</tr>
<tr>
<td align="center" ><input type="submit" id="d" value="登录"/></td>
<td align="center" ><input type="reset" id="c" value="重置" /></td>
</tr>
</form>
</body>
</html>
以上是关于Selenium键盘事件的主要内容,如果未能解决你的问题,请参考以下文章