「Python|Selenium|场景案例」如何模拟鼠标单击、双击、右击、长按和拖拽等操作?

这篇具有很好参考价值的文章主要介绍了「Python|Selenium|场景案例」如何模拟鼠标单击、双击、右击、长按和拖拽等操作?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文主要介绍如何在使用selenium进行自动化测试的时候模拟各种鼠标操作。

场景描述

在进行自动化测试的时候,我们可能会需要需要进行鼠标操作的场景,比如:

  • 测试右击,查看是否网页是否屏蔽了右键菜单
  • 面对滑块式登录验证方式,模拟拖拽
  • 模拟前进或后退等鼠标扩展操作
  • ……

解决方案

python的第三方库selenium中已经提供了许多现成的鼠标操作方法,包括鼠标能进行的三种操作:点击、释放、移动。以及提供了这三种操作常见的组合操作,我们需要查看我们需要的组合操作是否已经由selenium提供,对于没有现成方法的操作,需要将我们要进行的鼠标操作分解成这些已经有现成方法的鼠标操作的组合。

selenium中模拟鼠标操作需要依靠ActionChains()方法,这个方法用来模拟各种外部设备(虚拟设备)的操作(比如键盘、鼠标、手写笔、滚轮等等),操作如下:

  • 导入AcitionAPI:from selenium.webdriver.common.action_chains import ActionChains

  • 左键单击(点击后释放):ActionChains(web_driver).click(page_element).perform()

  • 右键单击:ActionChains(web_driver).context_click(page_element).perform()

  • 左键双击:ActionChains(web_driver).double_click(page_element).perform()

  • 移动到指定的页面元素上(悬浮):ActionChains(web_driver).move_to_element(page_element).perform()

  • 后退(扩展键):

    • selenium 3的版本中不支持,需要升级到selenium 4
    • 版本号通过print(selenium.__version__)查看
    • 创建组合键生成器:action = ActionBuilder(web_driver)
    • 按下后退键:action.pointer_action.pointer_down(MouseButton.BACK)
    • 释放后退键:action.pointer_action.pointer_up(MouseButton.BACK)
    • 执行组合键:action.perform()
  • 前进(扩展键):

    • selenium 3的版本中不支持,需要升级到selenium 4
    • 创建组合键生成器:action = ActionBuilder(web_driver)
    • 按下前进键:action.pointer_action.pointer_down(MouseButton.FORWARD)
    • 释放前进键:action.pointer_action.pointer_up(MouseButton.FORWARD)
    • 执行组合键:action.perform()
  • 按下左键后不松开:ActionChains(web_driver).click_and_hold(page_element).perform()

  • 移动指定距离:ActionChains(web_driver).move_by_offset(横向距离, 竖向距离)

  • 将指定元素拖拽到目标区域:

    • ActionChains(web_driver).drag_and_drop(要拖拽的页面元素,代表目标区域的页面元素).perform()
    • 代表目标区域的元素跟要拖拽的页面元素一样通过find_element定位
  • 拖拽元素移动一定距离:

    • ActionChains(web_driver).drag_and_drop_by_offset(要拖拽的元素, 横向移动距离, 竖向移动距离).perform()
  • 鼠标中键点击:

    • 创建组合键生成器:action = ActionBuilder(web_driver)
    • 按下中键:action.pointer_action.pointer_down(MouseButton.MIDDLE)
    • 释放中键:action.pointer_action.pointer_up(MouseButton.MIDDLE)
    • 执行组合键:action.perform()

具体代码

我们以如下滑块验证为例:
「Python|Selenium|场景案例」如何模拟鼠标单击、双击、右击、长按和拖拽等操作?

假设滑块的id为slide-1,则可以用如下代码将滑块按住后往左移动300,使得通过验证:

from selenium.webdriver.common.action_chains import ActionChains


slide = web_driver.find_element_by_id("slide-1") # selenium 3.x.x 的写法
slide = web_driver.find_element("id", "slide-1") # selenium 4.x.x 的写法
ActionChains(web_driver).drag_and_drop_by_offset(slide, 300, 0).perform()

滑动完成后效果如下:
「Python|Selenium|场景案例」如何模拟鼠标单击、双击、右击、长按和拖拽等操作?
如果要处理的滑块验证在iframe标签中,记得先定位并切换到iframe元素中,然后再进行操作。快去试试吧~

好书推荐:

  • 流畅的python
  • Python编程 从入门到实践 第2版
  • Python数据结构与算法分析 第2版

好课推荐:

  • 零基础学python
  • python核心技术与实战
  • python自动化办公实战

写文不易,如果对你有帮助的话,来一波点赞、收藏、关注吧~👇文章来源地址https://www.toymoban.com/news/detail-403332.html

到了这里,关于「Python|Selenium|场景案例」如何模拟鼠标单击、双击、右击、长按和拖拽等操作?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处

    driver=webdriver.Chrome() driver.maximize_window() driver.get(\\\"https://www.baidu.com/\\\") 在进行页面操作时,需要用鼠标进行左键点击、右键点击、双击、鼠标悬浮(比如鼠标移到某个位置就会出现一些元素)、鼠标拖动等操作,这时需要导入ActionChains模块 perform() 执行所有ActionChains 中存储的行为

    2024年02月05日
    浏览(68)
  • 【playwright】新一代自动化测试神器playwright+python系列课程22_playwright模拟鼠标操作_悬停_右击_双击

    有些元素,只有你鼠标移动到它那个位置上,他才会展开或者显示一些内容,这时候就要用到hover()操作了。 以个人设置这个下拉菜单,来看一下hover的使用。 项目实践代码 以双击关闭弹出的流程窗口为例,看一下dblclick()使用 项目实践代码 以弹出的右键菜单为例,看一下

    2024年01月18日
    浏览(41)
  • Qt模拟键盘单击、组合键、鼠标移动的多种实现方式

    Qt模拟键盘点击分为两种情况: 情况一:模拟键盘输入到系统窗口,整个系统都接收这个模拟输入。 情况二:模拟键盘输入到指定的软件,只有指定的软件接收模拟输入。 情况一实现方式: 头文件:windows.h 使用 void keybd_event(BYTE bVk, BYTE bScan, DWORD dwFlags,DWORD dwExtraInfo); 参数:

    2024年02月10日
    浏览(40)
  • Python爬虫(4)-Selenium模拟鼠标操作

    在Selenium4.2以后的版本里面鼠标的操作方法都封装在了ActionChains中需要时直接取即可。 使用方法就是调用ActionChains然后传入你需要点击的按钮的位置即可 ActionChains(driver).double_click(f1).perform() perform()的意思就是执行所有ActionChains中的动作 具体的操作方法如下 鼠标单击就是直接

    2024年01月19日
    浏览(52)
  • Selenium学习(5)其他操纵元素的方法/双击/移动鼠标/拖拽

    白月黑羽老师做的很详细,甚至我都懒得记笔记了,就全部拷贝下来吧。 b​​选择框 | 白月黑羽 (byhy.net) 之前我们对web元素做的操作主要是: 选择元素 ,然后  点击元素  或者  输入  字符串。 还有没有其他的操作了呢? 有。 比如:比如 鼠标右键点击、双击、移动鼠标

    2024年02月08日
    浏览(39)
  • Python爬虫(二十三)_selenium案例:动态模拟页面点击

    本篇主要介绍使用selenium模拟点击下一页,更多内容请参考:Python学习指南 分享一份Python的学习资料,但由于篇幅有限,完整文档可以扫码免费领取!!! 1)Python所有方向的学习路线(新版) 总结的Python爬虫和数据分析等各个方向应该学习的技术栈。 比如说爬虫这一块,很

    2024年02月04日
    浏览(61)
  • 单片机_按键——单击,双击,长按

    调用

    2024年02月16日
    浏览(53)
  • Unity 单击、双击、长按事件处理

    想要一个工具,能够同时集成单击、双击、长按的功能 通过IPointerDownHandler, IPointerUpHandler, IPointerClickHandler这三个接口就可以监听点击状态,然后再通过不同的点击状态来处理相应的事件 由于可能同时存在多个事件,实际开发过程中会出现多余事件通知,如下: 同时拥有单击

    2024年02月11日
    浏览(56)
  • 〖Python WEB 自动化测试实战篇⑦〗- 实战 - selenium的基本元素操作与键盘鼠标模拟事件操作

    订阅 Python全栈白宝书-零基础入门篇 可报销! 白嫖入口-请点击我。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏, 免费阶段订阅数量4300+ , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:加入社区的小伙

    2023年04月08日
    浏览(70)
  • QPushButton按钮控件常用信号,双击,单击等。

    想要了解QT中的QPushButoon类必须先了解QT的大致继承关系,这样我们才能更好的实现或者了解QPushButton按钮控件,大致继承关系如下: 我们可以看到QpushButton继承自—QAbstractButton继承自----QWidget。 这样我们就可以查找我们想要实现的功能相关信息。 单击信号:checked。 虽然我们

    2024年02月16日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包