• 突破自动化测试瓶颈!WEB自动化测试鼠标与键盘操作最佳实践分享


    目录

    引言

    鼠标操作方法

    说明

    实例化对象

    方法

    实例1

    实例2 拖拽

    注意

    键盘操作

    说明

    Keys类

    常用的键盘操作

    案例

     结语


    引言

    在现代软件测试中,WEB自动化测试已经成为了必不可少的一部分,然而,面对各种繁琐的测试场景,如何通过最佳实践提高测试效率和测试质量仍然是一个挑战。

    于是,我为大家准备了一份内容丰富的鼠标和键盘操作最佳实践分享指南,涵盖了各种常见的测试用例和解决方案,是您实现自动化测试提升的不二选择。

    通过这个指南,您将能够深入了解WEB自动化测试的关键技巧和方法,掌握鼠标和键盘操作的技能,让您的测试更加智能、高效。如果您想要突破自动化测试的瓶颈,那么不妨点击查看这个指南,一起开启WEB自动化测试的新篇章吧!

    鼠标操作方法

    说明

    • 在Selenium中将操作鼠标的方法封装在ActionChains类中

    实例化对象

    action = ActionChains(driver)
    

    方法

    1. context_click(element).perform( ) 右击 --> 模拟鼠标右键点击效果
    2. double_click(element).perform( ) 双击 --> 模拟鼠标双击效果
    3. drag_and_drop(source, target).perform( ) 拖拽 --> 模拟鼠标拖动效果
    4. move_to_element(element) .perform( ) 悬停 --> 模拟鼠标悬停效果
    5. perform( ) 执行 --> 此方法用来执行以上所有鼠标操作

    为了更好的学习其他方法,先学习perform()执行方法,因为所有的方法都需要执行才能生效

    提示

    • selenium框架中虽然提供了右击鼠标方法,但是没有提供选择右击菜单方法,可以通过发送快捷键的方式解决。(经测试,谷歌浏览器不支持)

    实例1

    • 连续操作不了,得一个功能一个功能操作
    • 这个里没有拖拽方法(需要能拖拽的页面才能实现)
    1. # 右击 双击 移动到按钮上
    2. from selenium import webdriver
    3. from time import sleep
    4. from selenium.webdriver import ActionChains, Keys
    5. from selenium.webdriver.common.by import By
    6. driver = webdriver.Firefox()
    7. url = r"https://www.sogou.com/"
    8. driver.get(url)
    9. # 实例化ActionChains对象
    10. action = ActionChains(driver)
    11. # context_click(element).perform( ) 右击 --> 模拟鼠标右键点击效果
    12. context = driver.find_element(By.ID, "query")
    13. action.context_click(context).perform()
    14. # 传入快捷键p 粘贴
    15. # context.send_keys("p")
    16. # 模拟ctrl+v 粘贴
    17. context.send_keys(Keys.CONTROL, 'v')
    18. sleep(3)
    19. context.submit()
    20. sleep(3)
    21. # 后退
    22. driver.back()
    23. # double_click(element).perform( ) 双击 --> 模拟鼠标双击效果
    24. click_two = driver.find_element(By.ID, "query")
    25. click_two.send_keys("双击")
    26. action.double_click(click_two).perform()
    27. sleep(3)
    28. # move_to_element(element) .perform( ) 悬停 --> 模拟鼠标悬停效果
    29. more = driver.find_element(By.CLASS_NAME, "m-arr")
    30. action.move_to_element(more).perform()
    31. sleep(3)
    32. driver.quit()

    实例2 拖拽

    1. action = ActionChains(driver)
    2. # 获取源元素
    3. source = driver.find_element(By.CSS_SELECTOR, "#div1")
    4. # 获取目标元素
    5. target = driver.find_element(By.CSS_SELECTOR, "#div2")
    6. sleep(2)
    7. action.drag_and_drop(source,target).perform()
    8. # 扩展 —— 偏移量
    9. action.drag_and_drop_by_offset(source,xoffset=360,yoffset=180).perform()
    10. # 暂停2
    11. sleep(2)

    注意

    • 鼠标操作必须在调用 perform( ) 后才能执行

    键盘操作

    如何实现复制、粘贴的操作?

    说明

    1. 模拟键盘上一些按键或组合键的输入,如:Ctrl+C、Ctrl+V
    2. 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. 需求:打开页面,完成以下操作
    2. 1.输入:admin1,暂停两秒,删除1
    3. 2.全选:admin,暂停2
    4. 3.复制:admin,暂停2
    5. 4.粘贴到密码框
    1. from selenium import webdriver
    2. from time import sleep
    3. from selenium.webdriver import ActionChains, Keys
    4. from selenium.webdriver.common.by import By
    5. driver = webdriver.Firefox()
    6. url = r"https://www.sogou.com/"
    7. driver.get(url)
    8. # 学习使用键盘操作
    9. # 需求:打开页面,完成以下操作
    10. # 1.输入:admin1,暂停两秒,删除1
    11. context = driver.find_element(By.ID, "query")
    12. context.send_keys("admin1")
    13. sleep(2)
    14. context.send_keys(Keys.BACK_SPACE)
    15. # 2.全选:admin,暂停2
    16. context.send_keys(Keys.CONTROL, 'A')
    17. sleep(2)
    18. # 3.复制:admin,暂停2
    19. context.send_keys(Keys.CONTROL, 'C')
    20. sleep(2)
    21. context.send_keys(Keys.BACK_SPACE)
    22. # 4.粘贴到密码框
    23. context.send_keys(Keys.CONTROL, 'V')
    24. sleep(1)
    25. driver.quit()

     ------------------------------------

     获取方式:留言【软件测试学习】即可

     结语

    这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。

    如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

  • 相关阅读:
    01 概率论的基本概念
    http请求过程 Android,Cronet android设计与实现分析 HTTP请求启动
    Ubuntu22.04 安装 MongoDB 7.0
    Spring中@Validated和@Valid区别是什么
    第三届云原生编程挑战赛正式启动,Serverless 赛道邀你参加!
    Unity导表工具Luban插件的数据加载原理与优化
    HDC 2022 开发者主题演讲与技术分论坛干货分享(附课件)
    BERT论文精读
    Speedoffice(excel)如何快捷隐藏表格内所有空行
    RabbitMQ 快速入门-消息的收发
  • 原文地址:https://blog.csdn.net/GDYY3721/article/details/130913459