位置: 编程技术 - 正文

玩转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 三种等待方式解读

  • 应交税费课程
  • 合作社收到政府补助款怎么做分录呢
  • 建筑企业小规模纳税人升为一般纳税人条件
  • 计提存货跌价准备怎么计算
  • 运输设备折旧费用科目
  • 向境外支付特许权使用费免征增值税
  • 应交税费进项税额属于什么科目借贷方向
  • 自产的不同产品有哪些
  • 公司员工个人所得税
  • 核定增收和查账增收的区别
  • 自然人独资属于个体工商户吗?
  • 全额拨款事业单位工资都一样吗
  • 印花税这个月没交怎么办
  • 营改增的增值税税率
  • 不动产发票丢了怎么办理房产证
  • 资产管理人该如何称呼
  • 增值税5%的税率怎么算
  • 企业为生产线员工怎么办
  • 销售货物收入与租金收入的纳税区别
  • 购买商品用于赠送
  • 计提减值准备怎么计算?
  • 增值税发票普票和专票有什么区别
  • 减免教育费附加和地方教育费附加账务处理
  • 高新企业奖励补贴交税吗
  • 应收账款少给货款怎么做分录?
  • 确认预计负债的必要条件
  • php url编码转换
  • 蒂内河畔圣艾蒂安小镇,法国阿尔卑斯省 (© CAVALIER Michel/hemis.fr/Alamy Stock Photo)
  • Javan tree frogs sitting together on a stalk in Indonesia (© SnapRapid/Offset by Shutterstock)
  • react devtools
  • css+html
  • vue计算属性和监听属性的区别
  • midjourney 初级使用说明
  • 预收账款的账务处理摘要
  • 未实现汇兑损益如何计算
  • 其他收益在利润表填在哪里
  • 如何解决面颊毛孔粗大
  • 织梦cms怎么样
  • 企业申请进出口权经营范围
  • 小企业会计准则适用于哪些企业
  • 如何把excel数据导入到word表格
  • 专项附加可以叠加吗
  • 查看、修改mysql的用户名和密码
  • 预付卡的增值税处理
  • 其他权益工具的公允价值变动计入哪里
  • 定期定额纳税申报表计税依据怎么填
  • 增值税红字发票怎么填开
  • 工程材料费发票没拿到是否能预提费用?
  • 个人所得税汇算年收入不超过12万
  • 应收账款如何做平
  • 小规模纳税人减按1%怎么计算
  • 出口报关成功
  • 企业筹建期间银行开户要求
  • 收到社保局的稳岗通知
  • 网上订机票怎么拿报销凭证
  • 金蝶的核算项目是什么意思
  • 预付账款怎么做账务处理
  • Ubuntu下MySQL及工具安装配置详解
  • mysql查询结果是什么类型
  • 在ubuntu中安装虚拟机
  • freebsd怎么安装软件
  • 怎么进入win7系统
  • Linux系统用命令进行盘数据往外读不可
  • win7系统点击桌面图标闪退
  • 如何改变linux终端界面的颜色
  • jQuery中的ajax async同步和异步详解
  • cocos2d怎么用
  • 基于jquery实现小说
  • unity中canvas怎么调框大小
  • jquery序列化json
  • android binary xml
  • javascript编程基础
  • Android自定义控件开发入门与实战 百度网盘
  • 基于javascript的毕业设计
  • 个税app如何更改扣缴义务人
  • 东营市税务局领导分工
  • 组织收入原则是应收尽收坚决不收过头税费
  • 增值税普通发票有什么用
  • 税务稽查检查笔录范文
  • 2018年税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设