当前位置:   article > 正文

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

python模拟键盘操作

一、模拟键盘操作

在selenium中,把键盘的一系列按键封装在Keys类中,因此,我们在模拟键盘操作的时候,需要先导入Keys包,然后配合send_keys()方法使用

# 鼠标事件,封装在Keys类中
from selenium.webdriver.common.keys import Keys
# 执行语法
要执行模拟键盘操作的元素.send_keys(Keys.封装的按键)
  • 1
  • 2
  • 3
  • 4

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

模拟键盘删除键:每次只能删除一个,如果要删除多个字符,需要在前面乘上几

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

二、模拟鼠标操作

在webdriver中,将这些关于鼠标操作的方法封装在ActionChains类中。ActionChains类提供了鼠标操作的常用方法:
导入ActionChains

# 在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类中
from selenium.webdriver.common.action_chains import ActionChains
  • 1
  • 2

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/192978
推荐阅读
相关标签
  

闽ICP备14008679号