Selenium键盘事件()-其他
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" width="512" style="border:1px solid;">
<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" width="50%"><input type="submit" id="d" value="登录"/></td>
<td align="center" width="50%"><input type="reset" id="c" value="重置" /></td>
</tr>
</form>
</body>
</html>
————————
前言:执行自动化测试过程中遇到操作键盘的按键,例如:全选、复制、剪切、粘贴、空格、删除等等操作,如何模拟键盘中的按键操作?
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" width="512" style="border:1px solid;">
<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" width="50%"><input type="submit" id="d" value="登录"/></td>
<td align="center" width="50%"><input type="reset" id="c" value="重置" /></td>
</tr>
</form>
</body>
</html>