位置: 编程技术 - 正文

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

  • 工商年报的纳税总额是什么
  • 财税通财务软件如何调整凭证间距
  • 企业进口葡萄酒也要缴纳消费税吗
  • 一般纳税人一直零申报会降为小规模吗
  • 以前未入账固定资产补入账涉及的房产税
  • 出口退税是按照出口金额吗
  • 酒店物料消耗包括哪些
  • 管理费用贷方余额借方是负数怎么结转
  • 已经认证不能抵扣怎么办
  • 利息收入缴纳什么税
  • 怎么核算金融企业收入
  • 货运代理公司排名前十
  • 灭草剂使用说明
  • 学校付学生的现金奖励入什么科目
  • 员工工资的扣点
  • 建筑公司运营的流程
  • 高速公路通行费怎么计算的
  • 保安公司怎样上保险
  • 可以给农村信用社的存折转账吗
  • 个人装卸费如何开票
  • 建造合同中甲供材选择一般计税还是简易计税更省税?
  • 如何查找使用过的手机号
  • 旅行社成本票没有收到,怎么挂账
  • 公司注销时存货计税依据
  • 应征增值税不含税销售额和免税销售额
  • 当月取得的进项必须当月勾选吗
  • 兼职劳务报酬要交个税吗
  • 土地增值税的税率和速算扣除数
  • 电脑搜索功能不准确
  • macOS Catalina10.15.2值得升级吗 macOS Catalina10.15.2更新了什么
  • 笔记本屏幕坏点几个算正常
  • 如何使用rank函数排名
  • 购买电子承兑需要给对方开发票吗
  • PHP:mcrypt_encrypt()的用法_Mcrypt函数
  • pytorch入门教程(非常详细)
  • 航空业燃油附加率是多少
  • 日落时有什么变化
  • 基于随机森林的气温预测
  • 个税申报系统操作指南
  • ros机器人自主导航中膨胀地图图层的颜色
  • node.js教程详细
  • thinkphp自定义标签
  • php时间代码
  • 以小物件为话题写出背后的故事
  • pythonjson文件存储
  • 购买土地支付的契税怎么入账
  • 直接转销法能不能用
  • 非货币性资产交换和债务重组的区别
  • 固定资产融资租赁如何确认入账价值
  • python中numpy数组和列表的区别
  • Android ViewPager2 + Fragment 联动
  • 固定资产一次性扣除政策
  • sqlserver数据库备份
  • 股权转让给个人和公司的区别
  • 月销售额10万以下一般纳税人免征增值税
  • 增值税可以减免吗
  • 以前年度损益科目类别怎么填
  • 筹建期间发生的所有费用
  • 公司向个人借款合法吗
  • 其他应付款的有
  • 认缴制下实收资本可以一直为零吗
  • 建筑企业其他应付款包含什么内容
  • sql将查询的结果拼接
  • win2003 enterprise序列号
  • nvm是啥
  • macbook怎么剪视频软件
  • centos7.6桌面版安装教程
  • win7无法打开windows功能
  • win8如何升级到win10系统版本
  • linux a
  • easyui demo
  • 批处理文件命令大全
  • 深入理解python特性 pdf
  • android study
  • javascript例题
  • jquery获取cookie值的方法
  • 购电脑折旧的会计分录
  • 换电员工作时间自由吗
  • 广东房产契税电话查询
  • 西安市人力资源和社会保障局关于2020年
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设