一、模拟键盘操作
在selenium中,把键盘的一系列按键封装在Keys类
中,因此,我们在模拟键盘操作的时候,需要先导入Keys包,然后配合send_keys()方法使用
# 鼠标事件,封装在Keys类中
from selenium.webdriver.common.keys import Keys
# 执行语法
要执行模拟键盘操作的元素.send_keys(Keys.封装的按键)
1、模拟键盘删除键
- 语法实现:
send_keys(Keys.BACK_SPACE)
2、模拟键盘空格键
- 语法实现:
send_keys(Keys.SPACE)
3、模拟键盘全选操作——Ctrl+A
- 语法实现:
send_keys(Keys.CONTROL, 'a')
4、模拟键盘复制操作——Ctrl+C
- 语法实现:
send_keys(Keys.CONTROL, 'c')
5、模拟键盘剪切操作——Ctrl+X
- 语法实现:
send_keys(Keys.CONTROL, 'x')
6、模拟键盘粘贴操作——Ctrl+V
- 语法实现:
send_keys(Keys.CONTROL, 'v')
7、模拟键盘回车键
- 语法实现:
send_keys(Keys.ENTER)
8、模拟键盘tab健
- 语法实现:
send_keys(Keys.TAB)
9、模拟键盘Esc健
- 语法实现:
send_keys(Keys.ESCAPE)
10、模拟键盘F1…F12
- 语法实现:send_keys(Keys.F12)
【示例】
# 导包
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 鼠标事件,封装在Keys类中
from selenium.webdriver.common.keys import Keys
# 定义谷歌对象
driver = webdriver.Chrome()
# 打开百度首页
driver.get('https://www.baidu.com/')
# 定位到百度搜索输入框
element = driver.find_element(By.ID, 'kw')
# 在输入框输入”Python自动化测试“
element.send_keys("Python自动化测试")
# 页面停留2秒钟
sleep(2)
# 模拟键盘的删除键,删除输入框中的最后一个字send_keys(Keys.BACK_SPACE)
element.send_keys(Keys.BACK_SPACE)
# 页面停留2秒钟
sleep(2)
# 模拟键盘的空格键,输入框最后加一个空格
element.send_keys(Keys.SPACE)
# 页面停留2秒钟
sleep(2)
# 模拟键盘的Ctrl+A全选操作
element.send_keys(Keys.CONTROL, 'a')
# 页面停留2秒钟
sleep(2)
# # 模拟键盘的Ctrl+C复制操作
# element.send_keys(Keys.CONTROL, 'c')
# 模拟键盘的Ctrl+X剪切操作
element.send_keys(Keys.CONTROL, 'x')
# 页面停留2秒钟
sleep(2)
# 模拟键盘的Ctrl+V粘贴操作
element.send_keys(Keys.CONTROL, 'v')
# 模拟键盘的回车操作
element.send_keys(Keys.ENTER)
# # 模拟键盘tab键
# element.send_keys(Keys.TAB)
sleep(5)
# 退出浏览器
driver.quit()
模拟键盘删除键:每次只能删除一个,如果要删除多个字符,需要在前面乘上几
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 鼠标事件,封装在Keys类中
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.implicitly_wait(5)
# 定位到搜索框
search_box = driver.find_element(By.ID, 'kw')
# 在输入框输入内容
search_box.send_keys("我以渺小爱你1234")
sleep(3)
# 删除多余的数字,每次只能删除一个,想要删除几个,需要在前面乘上几
search_box.send_keys(4*Keys.BACK_SPACE)
sleep(3)
# 关闭浏览器
driver.quit()
二、模拟鼠标操作
在webdriver中,将这些关于鼠标操作的方法封装在ActionChains
类中。ActionChains类提供了鼠标操作的常用方法:
导入ActionChains
类
# 在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类中
from selenium.webdriver.common.action_chains import ActionChains
ActionChains类提供了鼠标操作的常用方法:文章来源:https://www.toymoban.com/news/detail-772077.html
- perform():执行所有ActionChains类中存储的行为
- context_click():右击
- double_click():
- drag_and_drop():拖动
- move_to_element():鼠标悬停
下面演示“perform()”和“鼠标悬停”方法:文章来源地址https://www.toymoban.com/news/detail-772077.html
from selenium import webdriver
from selenium.webdriver.common.by import By
# 在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类中
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
# ActionChains 类提供了鼠标操作的常用方法
# 打开浏览器
driver = webdriver.Chrome()
# 打开百度首页
driver.get("https://www.baidu.com/")
# 最大化窗口
driver.maximize_window()
# 设置隐式等待
driver.implicitly_wait(5)
# 定位到“设置”元素
st_button = driver.find_element(By.ID, 's-usersetting-top')
# 在“设置”元素进行鼠标悬停
# perform()执行前面的操作
# ActionChains(打开的浏览器对象,driver).move_to_element(悬停的元素).perform()
ActionChains(driver).move_to_element(st_button).perform()
# 页面停留5秒钟
sleep(5)
# 关闭浏览器
driver.quit()
到了这里,关于【Python自动化测试】:模拟鼠标和键盘操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!