进阶 | 手把手教你模拟键盘和鼠标操作-ActionChains
本文节选自霍格沃兹测试学院内部教材
当需要模拟键盘或者鼠标操作时,需要使用 ActionChains 来处理。
ActionChains 类常用于模拟鼠标的行为,比如单击,双击,拖动等行为。当你调用 ActionChains
的方法时,会将所有操作按顺序存入队列,当调用 perform() 方法时,队列中的事件会依次执行。
# 引入依赖from selenium.webdriver import ActionChains
**点击相关操作**
下面代码中的 on_element 是需要传递一个元素进去,默认值为 None。
单击指定元素,如果不指定,会单击当前光标的位置
action.click(on_element=None)
长按某个元素
action.click_and_hold(on_element=None)
执行右键操作
action.context_click(on_element=None)
执行左键双击
action.double_click(on_element=None)
拖拽起始的元素到目标元素,即 source 到 target
action.drag_and_drop(source, target)
将目标拖动到指定的位置
# xoffset 和 yoffset 是相对于 source 左上角为原点的偏移量action.drag_and_drop_by_offset(source, xoffset, yoffset)
按键
使用这个方法可以方便的实现某些组合键盘事件,比如按下 ctrl+c 键。
action.key_down(value, element=None)
松开某个键,可以配合上面的方法实现按下 ctrl+c 并且释放。
ActionChains(driver).key_down(Keys.CONTROL)\ .send_keys('c').key_up(Keys.CONTROL).perform()
其他按键请参考:
https://python-selenium-
zh.readthedocs.io/zh_CN/latest/7.4%20%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6/
github
参考地址:https://github.com/SeleniumHQ/selenium/blob/916168f403dded05f878fe189d68c0f9152335c9/py/selenium/webdriver/common/keys.py
移动
指定光标移动到某一个位置,需要给出两个坐标位置
* * * * * * # xoffset 和 yoffset 是相对于网页左上角的偏移量action.move_by_offset(xoffset, yoffset)
将鼠标移动到指定元素的位置
action.move_to_element(to_element)
移动鼠标到相对于某个元素的偏移位置
# xoffset 和 yoffset 是相对于 to_element 左上角的偏移量action.move_to_element_with_offset(to_element, xoffset, yoffset)
其它
执行 ActionChains 中的操作
前面介绍的方法会将所有操作按顺序存入队列,要执行这些操作,需要调用perform()
方法。
action.move_to_element_with_offset(to_element, xoffset, yoffset).perform()
释放按下的鼠标
action.release(on_element=None)
- 向焦点元素位置输入值
焦点元素:使用 tab 键,那些被选中的元素就是焦点元素。
action.send_keys(*keys_to_send)
- 向指定的元素输入数据
action.send_keys_to_element(element, *keys_to_send)
使用ActionChains模拟键盘或者鼠标操作,就先讲到这里啦,大家还想看什么内容的文章也可以留言告诉我们哦!
** _
来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
QQ交流群:484590337
公众号 TestingStudio
视频资料领取:https://qrcode.testing-studio.com/f?from=CSDN&url=https://ceshiren.com/t/topic/15844
点击查看更多信息
进阶 | 手把手教你模拟键盘和鼠标操作-ActionChains相关推荐
- .net中模拟键盘和鼠标操作
周银辉 其实SendKeys类提供的方法蛮好用的,可惜的是WPF中不能用了,说是WPF的消息循环方式改成了Dispatcher,所以直接调用System.Windows.Forms.SendKeys. ...
- 模拟键盘、鼠标操作或Windows hook 在部分软件失效的问题
用户界面权限隔离(UIPI) 在Windows中的权限系统 除了在进程之间提供内核对象的访问保护,窗口系统还利用完整性级别来拒绝低完整性级别的进程访问/更新高完整性级别的进程的用户界面.这个机制称为用 ...
- 使用JS模拟键盘、鼠标操作
//只在chrome测试过,大部分应用场景在webkit,所以不做其他兼容// 模拟键盘输入 window.inputValue = function (dom, st) {var evt = new ...
- selenium3.0模拟键盘、鼠标操作
对于一些功能组合键,如 Fn + NmLk 来关闭或者打开数字键,或者 Alt+PrtSC 来抓取当前屏幕的活动窗口并保存到图片,通过 WebDriver 的 Keys 是没办法操作的. 这个时候我们 ...
- Hello Playwright:(7)模拟键盘和鼠标
尽管在上一节中,我们已经能够通过FillAsync或ClickAsync来实现输入和点击元素.但是,还有其他场景,我们必须模拟用户使用键盘.鼠标与页面交互.例如在线文档: Page.Keyboard ...
- 模拟键盘、鼠标 mouse_event keybd_event
MSDN 讲解:http://msdn.microsoft.com/en-us/library/ms646304(v=vs.85).aspx 中文讲解:http://dev.firnow.com/co ...
- python模拟按键与鼠标操作(一)
简介 有时候我们需要使用python执行一些脚本,可能需要让程序自动按键或自动点击鼠标,来模拟人操作键盘.鼠标,这里推荐使用pywin32库,安装方式如下: 输入:pip install pywin3 ...
- python模拟按键与鼠标操作(二)将复制内容粘贴至指定文本框中
一.简介 我们在使用python模拟键盘鼠标时,经常需要传入一些变量在页面的文本框中,比如传入查询数据的日期,查询数据的选项等等,这时我们可以利用datatime生成时间,定义为一个变量,然后利用以下 ...
- web ui自动化之模拟鼠标操作 - ActionChains
文章目录 前言 ActionChains类方法介绍 1.执行所有存储的操作 - perform() 2.鼠标单击 - click() 3.点击鼠标左键,不松开 - click_and_hold() 4 ...
- C#获取键盘和鼠标操作的时间的类
原文转自:http://www.cnblogs.com/kevinGao/archive/2011/09/19/2181464.html 最近在开发项目时需要实现屏保功能,即用户在设定的时间内没有对系 ...
最新文章
- 真人语音朗读软件_才知道,手机还自带文字转语音功能,一键按下便可实现,网友:赞...
- 小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈
- Onew——全球领先的区块链数字资产服务商
- 用API函数播放wav文件声音不连续的解决方法
- SAP C4C里前台Opportunity搜索的响应明细
- python 多线程并发编程(生产者、消费者模式),边读图像,边处理图像,处理完后保存图像实现提高处理效率
- ruby hash方法_Ruby中带有示例的Hash.default(key = nil)方法
- 浅谈SQLiteOpenHelper之onUpgrade例子
- 最容易进的大厂工作,百度经典百题
- Spark Structured : KuduException$OriginalException: Originalasynchronous stack trace
- Python 读写文本(open)
- 2015年传智播客JavaEE 第168期就业班视频教程day38-SSH综合案例-1
- “人,落魄时,千万别装可怜”你怎么看?
- Codeforces - 814B - An express train to reveries - 构造
- ❤️《大前端—Babel》
- ajax连接mysql数据库查询数据_ajax动态查询数据库数据并显示在前台的方法
- 演变与重塑----2014全球软件技术峰会感想
- golang批量修改文件名称
- PostgreSQL数据库——Pigsty
- xp计算机workgroup无法访问,无法访问,小编告诉你怎么解决workgroup无法访问
热门文章
- qq红包领取支付宝红包功能,qqxml跳转技术
- gmp php study,[技术干货] USP中文翻译连载 | 产品生命周期的包装密封性检查 (1、2之3)...
- 准谐振器和双二阶广义积分器的共同点和不同点
- dcp 1519 linux驱动下载,dcp1519驱动
- Python基础应用-摄氏温度换算
- BS和CS 架构的介绍以及优缺点
- iserdese2接口详解_Xilinx FPGA LVDS应用
- java获取本机ip和端口_java获取本机ip和端口
- ODAC安装配置与使用详解
- ImageOptim-无损图片压缩Mac版