Selenium通过ActionBuilder模拟鼠标操作直接移动到指定坐标的注意事项

news2025/2/23 23:44:03

在目前(2024-09-18)得Selenium官方手册中,模拟鼠标操作基本上都是通过ActionChains完成的,唯独有一动作,是通过ActionBuilder完成的。

而前者ActionChains,主要是通过offset,也就是坐标偏移量来实现的。看文档,使用它基本需要一个找一个元素作为参考,才能执行;而笔者想通过默认坐标来(左上角(0, 0))进行位置移动,自然而然想到了后者ActionBuilder。

看手册的时候,发现ActionBuilder的示例相对ActionChains有些不同,第一感觉是繁琐一些,示例代码如下:

    action = ActionBuilder(driver)
    action.pointer_action.move_to_location(8, 0)
    action.perform()

实际使用的过程中,报了好几次错误,始才发现确实要注意几个区别。因为花了点点儿的时间,所以特意总结出来,分享给可能同样会遇到的朋友。

1、要使用首先得引入对应的包,代码如下:

from selenium.webdriver.common.actions.action_builder import ActionBuilder

可以看出,和ActionChains的包也不相同。笔者开始搜索的时候,出来的有些结果告知不需要单独的包,明显是错误的答案。有遇到的朋友特别注意下。

ActionChains的包引入也粘到下面,方便对比观看:

from selenium.webdriver.common.action_chains import ActionChains

2、必须按照示例那样分开写才行,不能像ActionChains一样,使用一长串的“.”最后perform()。

笔者根据报错提示,得知两点:

一、‘PointerActions’ object has no attribute ‘perform’,意思就是示例第二句代码,pointer_action其实是会使用PointerActions这个对象,而这个对象没有perform()方法;

在这里插入图片描述

二、‘ActionBuilder’ object has no attribute ‘click’,意思就是ActionBuilder对象没有click()方法。

在这里插入图片描述
得知这几点,就明白为什么示例会那么写了。。

而如果通过ActionBuilder将鼠标移到指定位置后,想要进行点击操作,那么还得再使用ActionChains的click()方法。多一行的代码。也就是整体代码如下:

action = ActionBuilder(driver)
action.pointer_action.move_to_location(95, 65)
action.perform()
ActionChains(driver).move_by_offset(0, 0).click().perform()

完毕。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2146143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Prometheus】jmx_prometheus_javaagent监控java应用

目录 一、概述 1.1 promethues简介 1.2 JMX Exporter简介 二、监控SparkHistoryServer实现 一、概述 1.1 promethues简介 promethues采集数据的方法很多,常用的是通过各种exporter去主机采集,然后有些程序是没有相关的exporter,所以有些时候会通过脚…

信息学奥赛报考指南

近年来,信息学奥林匹克竞赛(NOI)越来越受到家长和学生的重视。这项竞赛不仅能培养孩子的编程与算法思维,还为优秀的选手提供了进入国内顶尖大学的保送资格,并有机会参加国际级赛事。因此,许多家长都希望了解…

设计图纸加密方法知多少?小编给你讲清楚

一、对称加密 使用对称加密算法,对设计图纸进行加密。对称加密使用相同的密钥进行加密和解密,确保只有持有正确密钥的人能够解密文件。 二、非对称加密 使用非对称加密算法,进行设计图纸的加密。非对称加密使用公钥加密、私钥解密的方式&a…

机械设备产品资料方案介绍小程序系统开发制作

设备产品资料介绍小程序系统,是一家工业机械设备生产厂家为了更好的服务客户而定制开发的一套小程序系统,让用户通过小程序就可以了解公司产品介绍的详细参数、售后服务和产品操作手持等。 该小程序系统里面主要开发的功能模块有: 1、产品目…

如何在算家云搭建DynamiCrafter(图生视频)

一、模型简介 DynamiCrafter 是一种(文本-)图像到视频/图像动画的方法,旨在从条件图像和文本提示中生成短视频片段(约 2 秒),可以将静止图像转换为动画。它使用了一种称为视频扩散先验的技术,可…

探索Facebook的黑暗面:数字化社交的双面剑

Facebook作为全球最大的社交平台,改变了我们的沟通和互动方式。虽然它带来了便利,但也存在不少隐忧。本文将探讨Facebook的负面影响,包括隐私问题、信息操控、心理健康危机及社交表面化等。 一、隐私问题:数据收集的隐忧 Facebo…

优思学院|如何从零开始自己学习六西格玛?

优思学院为学习六西格玛管理的学员,精心推荐了几本由浅入深、系统全面的书籍,帮助大家从入门到精通,逐步掌握六西格玛这一强大的管理工具。无论你是刚接触六西格玛的初学者,还是想在专业领域提升的高级学员,这几本书都…

硬件(驱动开发概念)

驱动程序开发 裸机驱动(无操作系统) Linux驱动 以计算机技术为基础,在软件和硬件层间可以被剪裁的专业硬件计算机系统 SOC:片上系统 Kernel:内核 x86 (CISC:complex instruction set computer 复杂指令…

IEEE Electronic Library(IEL)数据库文献检索下载介绍及个人获取IEEE文献途径

一、数据库介绍 IEEE(The Institute of Electrical and Electronics Engineers,电气电子工程师学会)是目前全球最大的非营利性专业技术学会,在全球160多个国家拥有超过45万名会员。IEEE在电气电子、计算机、半导体、通讯、电力能…

24年蓝桥杯及攻防世界赛题-MISC-3

21 reverseMe 复制图片,在线ocr识别,https://ocr.wdku.net/,都不费眼睛。 22 misc_pic_again ┌──(holyeyes㉿kali2023)-[~/Misc/tool-misc/zsteg] └─$ zsteg misc_pic_again.png imagedata … text: “$$KaTeX parse error: Undefined…

方法:批量提取PPT幻灯片中图片

处理包含大量图片的PPT(PowerPoint)幻灯片已成为许多专业人士的日常任务之一。然而,手动从每张幻灯片中逐一提取图片不仅耗时耗力,还容易出错。为了提升工作效率,减少重复劳动,探索并实现一种高效批量提取P…

STM32F407单片机开发入门(二)STM32F407VET6单片机详解

文章目录 一.概要二.单片机型号命名规则三.STM32F407系统架构四.STM32F40VET6单片机启动流程五.STM32F40VET6单片机主要外设资源六.开发过程中查看芯片数据手册的必要性1.单片机外设资源情况2.STM32F407单片机内部框图3.STM32F407单片机管脚图4.STM32F407单片机每个管脚功能5.单…

球类目标检测系统源码分享

球类目标检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

IOS 26 实现歌单详情(UITableView)列表 ③

歌单详情完整效果 歌单列表分组头部效果 本节是在文章 IOS 25 实现歌单详情(UITableView)列表② 的基础上,实现歌单列表分组头部View。当歌单列表滑动头部View至顶部时,头部View不会因列表滑动而消失,会一直显示在顶部…

2024.9.18

1.已知网址www.hqyj.com截取出网址的每一个部分 菜单栏中 ----> 虚拟机 -----> 设置 -----> 网络适配器 选择桥接模式 菜单栏中 ----> 编辑 -----> 虚拟网络编辑器 更改设置 将桥接改成自动 如果桥接连不上网 尝试还原默认设置后,在重新连接桥接…

微信小程序的学生选课系统--论文源码调试讲解

第二章 开发技术介绍 此次管理系统的关键技术和架构由B/S结构、java和mysql数据库,是本系统的关键开发技术,对系统的整体、数据库、功能模块、系统页面以及系统程序等设计进行了详细的研究与规划。 2.1 系统开发平台 在该在线微信小程序的学生选课系统…

动手学习RAG: 大模型向量模型微调 intfloat/e5-mistral-7b-instruct

动手学习RAG: 向量模型动手学习RAG: moka-ai/m3e 模型微调deepspeed与对比学习动手学习RAG:rerank模型微调实践 bge-reranker-v2-m3动手学习RAG:迟交互模型colbert微调实践 bge-m3动手学习RAG: 大模型向量模型微调 intfloat/e5-mistral-7b-instruct动手学…

JavaScript高级——内存溢出和内存泄漏

1、闭包的缺点与解决方法 (1)缺点:函数执行完后,函数内的局部变量没有释放,占用内存时间会变长。 容易造成内存泄漏。 (2)解决:能不用闭包就不用。 及时释放。 2、内存溢出 ① 一…

Linux进阶 查看系统进程

操作系统中进程的生命周期是: 创建进程,(服务启动或软件的启动)进行运行状态进程等待状态进行唤醒进程结束一般主要关注是进行中间的三种状态,三种状态之间装换关系如下: 1、就绪状态:表示进程已经做好了运行的准备状态,只要获得内存空间,就可以立即执行。 2、阻塞状态:…

Maya---机械模型制作

材质效果(4)_哔哩哔哩_bilibili 三角面 四边面 多边面 *游戏允许出现三角面和四边面 游戏中一般是低模(几千个面) 动漫及影视是高模 机械由单独零件组合而成,需独立制作 低面模型到高面模型 卡线是为了将模型保…