目录
引言
鼠标操作方法
说明
实例化对象
方法
实例1
实例2 拖拽
注意
键盘操作
说明
Keys类
常用的键盘操作
案例
结语
引言
在现代软件测试中,WEB自动化测试已经成为了必不可少的一部分,然而,面对各种繁琐的测试场景,如何通过最佳实践提高测试效率和测试质量仍然是一个挑战。
于是,我为大家准备了一份内容丰富的鼠标和键盘操作最佳实践分享指南,涵盖了各种常见的测试用例和解决方案,是您实现自动化测试提升的不二选择。
通过这个指南,您将能够深入了解WEB自动化测试的关键技巧和方法,掌握鼠标和键盘操作的技能,让您的测试更加智能、高效。如果您想要突破自动化测试的瓶颈,那么不妨点击查看这个指南,一起开启WEB自动化测试的新篇章吧!
鼠标操作方法
说明
- 在Selenium中将操作鼠标的方法封装在ActionChains类中
实例化对象
action = ActionChains(driver)
方法
- context_click(element).perform( ) 右击 --> 模拟鼠标右键点击效果
- double_click(element).perform( ) 双击 --> 模拟鼠标双击效果
- drag_and_drop(source, target).perform( ) 拖拽 --> 模拟鼠标拖动效果
- move_to_element(element) .perform( ) 悬停 --> 模拟鼠标悬停效果
- perform( ) 执行 --> 此方法用来执行以上所有鼠标操作
为了更好的学习其他方法,先学习perform()执行方法,因为所有的方法都需要执行才能生效
提示
- selenium框架中虽然提供了右击鼠标方法,但是没有提供选择右击菜单方法,可以通过发送快捷键的方式解决。(经测试,谷歌浏览器不支持)
实例1
- 连续操作不了,得一个功能一个功能操作
- 这个里没有拖拽方法(需要能拖拽的页面才能实现)
# 右击 双击 移动到按钮上
from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains, Keys
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
url = r"https://www.sogou.com/"
driver.get(url)
# 实例化ActionChains对象
action = ActionChains(driver)
# context_click(element).perform( ) 右击 --> 模拟鼠标右键点击效果
context = driver.find_element(By.ID, "query")
action.context_click(context).perform()
# 传入快捷键p 粘贴
# context.send_keys("p")
# 模拟ctrl+v 粘贴
context.send_keys(Keys.CONTROL, 'v')
sleep(3)
context.submit()
sleep(3)
# 后退
driver.back()
# double_click(element).perform( ) 双击 --> 模拟鼠标双击效果
click_two = driver.find_element(By.ID, "query")
click_two.send_keys("双击")
action.double_click(click_two).perform()
sleep(3)
# move_to_element(element) .perform( ) 悬停 --> 模拟鼠标悬停效果
more = driver.find_element(By.CLASS_NAME, "m-arr")
action.move_to_element(more).perform()
sleep(3)
driver.quit()
实例2 拖拽
action = ActionChains(driver)
# 获取源元素
source = driver.find_element(By.CSS_SELECTOR, "#div1")
# 获取目标元素
target = driver.find_element(By.CSS_SELECTOR, "#div2")
sleep(2)
action.drag_and_drop(source,target).perform()
# 扩展 —— 偏移量
action.drag_and_drop_by_offset(source,xoffset=360,yoffset=180).perform()
# 暂停2
sleep(2)
注意
- 鼠标操作必须在调用 perform( ) 后才能执行
键盘操作
如何实现复制、粘贴的操作?
说明
- 模拟键盘上一些按键或组合键的输入,如:Ctrl+C、Ctrl+V
- Seleuim中把键盘的按键都封装在Keys类中
Keys类
-
导包:
from selenium.webdriver import Keys
常用的键盘操作
send_keys(Keys.BACK_SPACE) | 删除键(BackSpace) |
---|---|
send_keys(Keys.SPACE) | 空格键(Space) |
send_keys(Keys.TAB) | 制表键(Tab) |
send_keys(Keys.ESCAPE) | 回退键(Esc) |
send_keys(Keys.ENTER) | 回车键(Enter) |
send_keys(Keys.CONTROL, 'a') | 全选(Ctrl+A) |
send_keys(Keys.CONTROL, 'c') | 复制(Ctrl+C) |
案例
需求:打开页面,完成以下操作
1.输入:admin1,暂停两秒,删除1
2.全选:admin,暂停2秒
3.复制:admin,暂停2秒
4.粘贴到密码框
from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains, Keys
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
url = r"https://www.sogou.com/"
driver.get(url)
# 学习使用键盘操作
# 需求:打开页面,完成以下操作
# 1.输入:admin1,暂停两秒,删除1
context = driver.find_element(By.ID, "query")
context.send_keys("admin1")
sleep(2)
context.send_keys(Keys.BACK_SPACE)
# 2.全选:admin,暂停2秒
context.send_keys(Keys.CONTROL, 'A')
sleep(2)
# 3.复制:admin,暂停2秒
context.send_keys(Keys.CONTROL, 'C')
sleep(2)
context.send_keys(Keys.BACK_SPACE)
# 4.粘贴到密码框
context.send_keys(Keys.CONTROL, 'V')
sleep(1)
driver.quit()
------------------------------------
获取方式:留言【软件测试学习】即可
结语
这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!