位置: 编程技术 - 正文

玩转python selenium鼠标键盘操作(ActionChains)(玩转兽世:兽夫,亲一个)

编辑:rootadmin

推荐整理分享玩转python selenium鼠标键盘操作(ActionChains)(玩转兽世:兽夫,亲一个),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:玩转兽世:兽夫,亲一个,玩转香江1980,玩转娱乐圈,玩转科学,玩转香江1980,玩转娱乐圈,玩转半个娱乐圈的明星大盘点,玩转华尔街,内容如对您有帮助,希望把文章链接给更多的朋友!

用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains

selenium.webdriver.common.action_chains.ActionChains(driver)

这个类基本能够满足我们所有对鼠标操作的需求。

1.ActionChains基本用法

首先需要了解ActionChains的执行原理,当你调用ActionChains的方法时,不会立即执行,而是会将所有的操作按顺序存放在一个队列里,当你调用perform()方法时,队列中的时间会依次执行。

这种情况下我们可以有两种调用方法:

&#;链式写法

&#;分步写法

两种写法本质是一样的,ActionChains都会按照顺序执行所有的操作。

2.ActionChains方法列表

click(on_element=None) ——单击鼠标左键

click_and_hold(on_element=None) ——点击鼠标左键,不松开

context_click(on_element=None) ——点击鼠标右键

double_click(on_element=None) ——双击鼠标左键

drag_and_drop(source, target) ——拖拽到某个元素然后松开

drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开

key_down(value, element=None) ——按下某个键盘上的键

key_up(value, element=None) ——松开某个键

move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标

move_to_element(to_element) ——鼠标移动到某个元素

move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置

perform() ——执行链中的所有动作

release(on_element=None) ——在某个元素位置松开鼠标左键

send_keys(*keys_to_send) ——发送某个键到当前焦点的元素

send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素

接下来用示例来详细说明和演示每一个方法的用法:

玩转python selenium鼠标键盘操作(ActionChains)(玩转兽世:兽夫,亲一个)

3.代码示例

1. 点击操作

示例网址

代码:

结果:

[CLICK][DOUBLE_CLICK][RIGHT_CLICK]

2.鼠标移动

示例网址

示例代码:

结果

Mouse moved

Mouse moved

3.拖拽

示例网址

代码:

结果:

dropped dropped dropped dropped

一般用坐标定位很少,用上例中的方法1足够了,如果看源码,会发现方法2其实就是方法1中的drag_and_drop()的实现。注意:拖拽使用时注意加等待时间,有时会因为速度太快而失败。

4.按键

模拟按键有多种方法,能用winapi来实现,能用SendKeys来实现,也可以用selenium的WebElement对象的send_keys()方法来实现,这里ActionChains类也提供了几个模拟按键的方法。

示例网址

代码1:

结果:

key downed charCode=[0] keyCode=[] CTRLkey upped charCode=[0] keyCode=[] NONEkey pressed charCode=[] keyCode=[0] NONE

示例2:

示例网址

代码:

结果:

Test KeysTest Keys

复制粘贴用WebElement< input >.send_keys()也能实现,大家可以试一下,也可以用更底层的方法,同时也是os弹框的处理办法之一的winapi,有兴趣也可以试试SendKeys、keybd_event

标签: 玩转兽世:兽夫,亲一个

本文链接地址:https://www.jiuchutong.com/biancheng/385350.html 转载请保留说明!

上一篇:Python selenium文件上传方法汇总(selenium在pycharm)

下一篇:Python selenium 三种等待方式解读

  • 企业税收收入怎么计算
  • 应付账款里的暂估
  • 怎么找回丢失的手机号
  • 劳务公司包工包料的法律法规
  • 设备租赁费用
  • 租的厂房水电费开不了发票怎么办
  • 增值税降到16个点什么时候实行
  • 科技型中小企业条件
  • 财政局专利补助政策
  • 发放独生子女津贴的条件
  • 小规模没有进项票可以开销项票吗
  • 补交以前年度增值税和滞纳金怎么开票
  • 五证合一后地税编码怎么查
  • 有哪些费用发票可以抵扣
  • 未确认融资费用的期初余额
  • 员工收到货款不交公司,法律规定
  • 开发票有时间限制吗?
  • 免税收入包括哪些收入
  • 外贸企业内销与外销对比
  • win11本地用户和组
  • 2020最新win10密钥
  • win7系统管理员密码忘了怎么办
  • c盘显示隐藏
  • php中提交表单数据
  • 农产品进项税额转出怎么算
  • 系统win7旗舰版
  • 应付账款挂账会计分录
  • thinkphp5.0.23
  • 房抵债权
  • php 动态执行代码
  • 前端开发做什么副业
  • 新手学web前端开发
  • php入门基础教程
  • lvm 创建
  • 学费入账处理
  • 企业实际发生的与取得收入有关的支出
  • 建筑工程企业所得税预缴
  • 收到合同预付款怎么处理
  • 厂家给的返点怎么下往来账
  • springbootredis密码加密
  • PostgreSQL之分区表(partitioning)
  • mongodb安装过程
  • 织梦如何做提取卡密
  • python dup函数
  • 个体商户个人所得税怎么算
  • 出售其他债权投资产生的收益为什么计入留存收益
  • 小规模纳税人三减一政策
  • 代收代付保险费分录
  • 管理费用处理的是
  • 预收账款是负债还是资产
  • 不具有销售性质的工作
  • 对方多开票账务会怎么样
  • 应收管理费,做应收款处理会计分录
  • 小额贷款在银行需要什么条件
  • 税控盘忘记抄报税怎么办
  • 材料会计的内容
  • 企业减资要交税嘛
  • 职工教育经费如何列支
  • 计提折旧的固定资产有哪些
  • 装修设计费多少合理
  • sql server 批量删除
  • 挖掘出潜能
  • ssh实现登录功能
  • js添加列表项
  • linux shell脚本实例
  • 链接符怎么删除
  • python中文分词代码
  • jquery触发点击操作
  • 批量修改ssh配置端口
  • 服务器总是自动关机
  • 实现 java
  • 简单的jquery插件实例
  • jq拖拽功能
  • js script跨域
  • unity的spine动画切换
  • Javascript removeChild()删除节点及删除子节点的方法
  • 计算两gps坐标之间距离
  • 河南省国家税务总局发票查询系统
  • 北京国家税务局待遇
  • 梦幻西游新版登录方式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设