【Python自动化测试】:模拟鼠标和键盘操作

一、模拟键盘操作

在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类提供了鼠标操作的常用方法:

  • perform():执行所有ActionChains类中存储的行为
  • context_click():右击
  • double_click():
  • drag_and_drop():拖动
  • move_to_element():鼠标悬停

下面演示“perform()”和“鼠标悬停”方法:

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()
  • 1
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值