【UI自动化测试技术】自动化测试研究:Python+Selenium+Pytest+Allure,详解UI自动化测试,学习模拟鼠标+模拟键盘进行相关操作(精)(四)

这篇具有很好参考价值的文章主要介绍了【UI自动化测试技术】自动化测试研究:Python+Selenium+Pytest+Allure,详解UI自动化测试,学习模拟鼠标+模拟键盘进行相关操作(精)(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学习目标

1、了解元素交互的常用方法
2、学习如何对多选元素进行操作
3、学习模拟鼠标进行相关操作本节目标
4、学习模拟键盘进行相关操作本节目标

Action接口

用于向 Web 浏览器提供虚拟化设备输入操作的低级接口.除了刚刚讲过的Web元素交互之外, Actions 接口 还提供了对指定输入设备 可以执行的确切操作的精细控制. Selenium为3种输入源提供了接口: 键盘设备的键输入, 鼠标, 笔或触摸设备的输入, 以及滚轮设备的滚轮输入 (在Selenium 4.2中引入). Selenium允许您构建分配给特定输入的独立操作命令, 会将他们链接在一起, 并调用关联的执行方法以一次执行它们。

Action构造器

在从遗留JSON Wire协议迁移到 新的W3C WebDriver协议的过程中, 低级的操作构建块变得特别详细. 它非常强大, 但每个输入设备都有多种使用方法, 如果您需要管理多个设备, 则负责确保他们之间的同步正确.值得庆幸的是, 不需要学习如何直接使用低级命令, 因为要执行的几乎所有操作, 都已提供了相应的简便方法, 这些方法可以组合较低级别的命令. 请分别参阅下面相应的键盘, 鼠标, 笔 和滚轮 小节.

暂停

clickable = driver.find_element(By.ID, "clickable")
ActionChains(driver).move_to_element(clickable).pause(1).click_and_hold().pause(1).send_keys("abc").perform()

释放所有Actions

需要注意的重要一点是, 驱动程序会记住整个会话中所有输入项的状态. 即使创建actions类的新实例, 按下的键和指针的位置 也将处于以前执行的操作离开它们的任何状态.有一种特殊的方法来释放所有当前按下的键和指针按钮. 此方法在每种语言中的实现方式不同, 因为它不会使用perform方法执行.

ActionBuilder(driver).clear_actions()

学习模拟鼠标进行相关操作

用于与网页交互的任何指针设备的表示形式。
只有3个动作可以用鼠标完成:按下一个按钮,释放一个被按下的按钮,移动鼠标。Selenium提供了最常见的方式组合这些操作的方便方法。

Click and hold (点击并按住不放)

此方法结合了将鼠标移动到元素中心与按下鼠标左键。这对于聚焦特定元素很有用

clickable = driver.find_element(By.ID, "clickable")
ActionChains(driver).click_and_hold(clickable).perform()

Click and release (点击然后松开)

clickable = driver.find_element(By.ID, "click")
ActionChains(driver).click(clickable).perform()

Alternate Button Clicks (交替点击按钮)

一个鼠标共有5个定义按钮:
0 — Left Button (the default) 左键(默认)
1 — Middle Button (currently unsupported) 中键(目前不支持)
2 — Right Button 右键
3 — X1 (Back) Button (后退)按钮
4 — X2 (Forward) Button (前进)按钮

Context Click (单击右键)
这种方法结合了移动到元素中心与按下并释放鼠标右键(按钮2)

clickable = driver.find_element(By.ID, "clickable")
ActionChains(driver).context_click(clickable).perform()

Double click (双击)
此方法将移动到元素中心与两次按下并释放鼠标左键结合在一起

clickable = driver.find_element(By.ID, "clickable")
ActionChains(driver).double_click(clickable).perform()

Move to element (移动到元素)
此方法将鼠标移动到元素的视图内中心点。这也被称为“悬停”。注意元素必须在视窗中,否则命令会出错。

hoverable = driver.find_element(By.ID, "hover")
ActionChains(driver).move_to_element(hoverable).perform()

学习模拟键盘进行相关操作

用于与网页交互的任何关键输入设备的表示。只有两个操作可以用键盘完成:按下一个键和释放一个按下的键。除了支持ASCII字符之外,每个键盘键都有一个表示,可以按下或释放指定的序列。

Key down (按下键位)

from selenium.webdriver.common.keys import Keys
ActionChains(driver).key_down(Keys.SHIFT).send_keys("abc").perform()

Key up (松开键位)

ActionChains(driver).key_down(Keys.SHIFT).send_keys("a").key_up(Keys.SHIFT).send_keys("b").perform()

Send keys (发送按键信息)

这是Actions API中的一个方便的方法,它将keyDown和keyUp命令组合在一个操作中。执行此命令与使用元素方法略有不同,但主要用于需要在其他操作中间输入多个字符的情况。

Active Element (活性元素)

活性元素,也就是当前所在的元素,比如例子中的输入框

ActionChains(driver).send_keys("abc").perform()

Designated Element (指定的元素)

text_input = driver.find_element(By.ID, "textInput")ActionChains(driver).send_keys_to_element(text_input, "abc").perform()

Copy and Paste (复制和粘贴)

下面是一个使用上述所有方法来执行复制/粘贴操作的示例。注意,此操作使用的键将根据是否是Mac OS而有所不同。

cmd_ctrl = Keys.COMMAND if sys.platform == 'darwin' else Keys.CONTROL
ActionChains(driver).send_keys("Selenium!").send_keys(Keys.ARROW_LEFT).key_down(Keys.SHIFT).send_keys(Keys.ARROW_UP).key_up(Keys.SHIFT).key_down(cmd_ctrl).send_keys("xvv").key_up(cmd_ctrl) .perform()

结语

关于键盘以及鼠标的操作,除了以上的常用方式的解决方案,还有其它很多不常用的操作,例如游戏鼠标中的按键,它们的解决方案是怎样的?这些都要大家在实际的工作中进行探索,此处不再进行介绍。
下一篇文章,我们将一起学习窗口的切换以及iframe的处理,再见!
感谢你们的阅读!

光阴者百代之过客,唯有努力奔跑方能生风文章来源地址https://www.toymoban.com/news/detail-842841.html

到了这里,关于【UI自动化测试技术】自动化测试研究:Python+Selenium+Pytest+Allure,详解UI自动化测试,学习模拟鼠标+模拟键盘进行相关操作(精)(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python+Selenium.webdriver实现WEB端UI自动化测试(实例脚本)

            本篇记录基于Python+Selenium.webdriver实现WEB端UI自动化测试,其中测试用例使用excel维护。为了在实际项目种的扩展应用,建议学习webdriver的元素定位方法,欢迎在评论区沟通讨论。 该示例选取的是登录页不需要输入验证码校验的基础页面(考虑到现在大部分项目都是

    2023年04月08日
    浏览(26)
  • python自动化测试selenium核心技术三种等待方式

    UI自动化测试过程中,可能会出现因测试环境不稳定、网络慢等情况,如果不做任何处理的话,会出现无法定位到特定元素而报错,导致自动化测试无法顺利执行。 selenium官网手册:Waits | Selenium slenium自动化测试中,主要涉及三种等待方式:     缺点:即使网络条件较好时

    2024年04月11日
    浏览(39)
  • Python爬虫技术系列-06selenium完成自动化测试V01

    使用selenium库完成动点击下一页,点击视频操作等过程, 如果你非要说这是XX,那我也不过多辩解,毕竟 批评不自由,赞美无意义 。 本案例仅是技术演示,所以会隐去相关网址等,读者可以重点查看这里使用的selenium技术点即可。另外本版本为V01版本,所以仅仅是可用,很多

    2024年02月05日
    浏览(29)
  • Python WEB UI自动化测试(1)-Selenium基础(史上最详细,一篇就够)

    命令行安装 找到本地chrome的浏览器的版本 下载相应版本的驱动器 chrome浏览器驱动下载 地址:chromedriver.storage.googleapis.com/index.html 下载完后,解压到本地的python的目录下 geckodriver: https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html edgedriver: https://developer.microsoft.com/en-us/m

    2024年02月03日
    浏览(41)
  • Python爬虫技术之Selenium自动化测试及模拟点击页面爬虫最全知识

    Selenium是一套Web网站的程序自动化操作解决方案(比如点击界面按钮,在文本框中输入文字等操作) Selenium的自动化原理如下 3.1 下载selenium库的命令 3.2 下载谷歌浏览器Chrome对应的驱动 驱动库网址:http://chromedriver.storage.googleapis.com/index.html 注意:根据自己的Chrome版本进行选择

    2024年01月16日
    浏览(45)
  • Selenium UI自动化测试入门

    1.先下载Pycharm编辑器, 网站:下载地址 2.安装python环境包 地址:Download Python | Python.org    安装的时候记住勾选自动配置环境变量 3.在pycharm中配置python执行器路径   4.安装selenium库 pip install selenium==4.1.1  查看当前selenium版本 按住ctrl+鼠标左键点击  显示版本号 5.安装chromdriv

    2024年02月09日
    浏览(57)
  • selenium测试框架快速搭建(UI自动化测试)

    一、介绍         selenium目前主流的web自动化测试框架;支持多种编程语言Java、pythan、go、js等;selenium 提供一系列的api 供我们使用,因此在web测试时我们要点页面中的某一个按钮,那么我们只需要获取页面,然后根据id或者name找到对应的按钮,然后执行click操作就可以完成

    2024年02月02日
    浏览(45)
  • UI自动化测试篇 :Selenium2(Webdriver)&TestNG自动化测试环境搭建

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!    最开始学习UI自动化,用的工具是QTP10,用起来确实比较容易上手

    2024年03月10日
    浏览(47)
  • selenium-基于UI的自动化测试框架

      自动化测试是指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果,将人为驱动的测试行为转化为机器执行的过程   自动化测试包括UI自动化、接口自动化、单元测试自动化。按照这个金字塔模型来进行自动化测试

    2024年02月05日
    浏览(40)
  • 华为云云耀云服务器L实例评测|Python Selenium加Chrome Driver构建UI自动化测试实践

    🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验, AWS/阿里云资深使用用户 ,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论⭐收藏 随着云计算时代

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包