selenium 模拟鼠标操作
前言:我们在做web自动化的时候,有时候页面的元素不需要我们点击,值需要把鼠标移动上去就能展示各种信息,这个时候我们可以通过操作鼠标来实现,接下来我们来讲一下使用selenium做web自动化的时候如何来操作鼠标。
鼠标操作,我们可以使用selenium的ActionChains类来实现,我们先来认识一下这个类。
一、ActionChains类常用方法
- click_and_hold(on_element=None) :点击鼠标左键,不松开
- context_click(on_element=None):点击鼠标右键
- double_click(on_element=None):双击鼠标左键
- drag_and_drop(source, target):拖拽到某个元素然后松开
- move_by_offset(xoffset, yoffset):鼠标从当前位置移动到某个坐标
- move_to_element(to_element) :鼠标移动到某个元素
- release(on_element=None):在元素上释放按住的鼠标按钮
- pause(seconds):暂停操作(秒)
二、ActionChains类所有方法
- perform(self)–执行鼠标操作方法
- reset_actions()–清楚操作子令
- 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):按下某个键盘上的键
10、key_up(value, element=None) :松开某个键
11、move_by_offset(xoffset, yoffset):鼠标从当前位置移动到某个坐标
12、move_to_element(to_element) :鼠标移动到某个元素
13、move_to_element_with_offset(to_element, xoffset, yoffset):移动到距某个元素(左上角坐标)多少距离的位置
14、pause(seconds):暂停操作(秒)
15、release(on_element=None):在元素上释放按住的鼠标按钮
16、send_keys(*keys_to_send):发送某个键到当前焦点的元素
17、send_keys_to_element(element, *keys_to_send) :发送某个键到指定元素
三、ActionChains使用步骤
- 实例化:actions = ActionChains(driver)
- 调用鼠标操作方法:actions.move_to_element(menu)
- 执行鼠标操作方法:actions.perform()
四、实战
代码做的事情:
- 打开测试网页:https://www.runoob.com/try/try.php?filename=tryjs_events_mouseover
- 切换iframe
- 定位到绑定鼠标事件的div
- 将鼠标移动到div上触发事件(可以观察到div上字会发生变化)
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
driver = webdriver.Chrome(r"D:\chromeDriver\71\chromedriver71.exe")
driver.implicitly_wait(5)
driver.get(url="https://www.runoob.com/try/try.php?filename=tryjs_events_mouseover")
driver.maximize_window()
#切换iframe
driver.switch_to.frame(driver.find_element_by_xpath('//iframe[@id="iframeResult"]'))
#元素定位
ele = driver.find_element_by_xpath('//div[@onmouseover="mOver(this)"]')
#移动鼠标到元素上触发事件
actions = ActionChains(driver)
actions.move_to_element(ele)
actions.perform()
time.sleep(5)
driver.quit()
六、总结
- ActionChains类中其他方法使用方式都一样,大家有空可以试一下
- ActionChains类中有很多方法,但是常用的并不多,上面已经列出,掌握常用方法即可
- 特别注意:ActionChains的执行原理,当你调用ActionChains的方法时,不会立即执行,而是会将所有的操作按顺序存放在一个队列里,当你调用perform()方法时,队列中的时间会依次执行。
- ActionChains类中的方法可以使用链式调用,大家思考思考自己拓展吧(其实很简单)。
selenium 模拟鼠标操作相关推荐
- 学会了selenium 模拟鼠标操作,你就可以偷懒点点点了
前言 我们在做 Web 自动化的时候,有时候页面的元素不需要我们点击,值需要把鼠标移动上去就能展示各种信息. 这个时候我们可以通过操作鼠标来实现,接下来我们来讲一下使用 selenium 做 Web ...
- Python爬虫(4)-Selenium模拟鼠标操作
在Selenium4.2以后的版本里面鼠标的操作方法都封装在了ActionChains中需要时直接取即可. 1.鼠标双击 使用方法就是调用ActionChains然后传入你需要点击的按钮的位置即可 A ...
- selenium模拟鼠标和键盘操作的基本方法
前言 前面已经把环境搭建好了,这从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是 ...
- selenium之鼠标操作详解
前言 人类频繁的用手操作鼠标和键盘,为了解决这个问题,selenium工具为我们提供了一个类来处理这些事件- Actionchains ,该类可以完成鼠标移动,鼠标点击事件.键盘输入.内容菜单交互等交 ...
- selenium中鼠标操作:ActionChains类
一.ActionChains类的介绍 ActionChains模拟鼠标操作的常用方法.使用click()方法可以进行鼠标的单击操作,但是鼠标操作还包括:双击.右击.悬停.鼠标拖动等功能,所以,Acti ...
- 利用Python模拟鼠标操作,一键将GIF文件载入CSDN的Markdown编辑器
简 介: 讨论了在csdn的Markdown编译器中自动载入GIF文件的方法.使用了Python中的pyautogui软件包,可以通过Python的小程序实现一键将GIF文件载入CSDN的Markdo ...
- C# SendInput 实现模拟鼠标操作
刚刚开始学习C#,想自己做一个网页游戏的挂.游戏里面有收钱的动作,一个建筑物一个建筑物的点,很累啊.于是想用C#模拟鼠标操作替我收钱,想着学习这个对以后的测试工作也有帮助,于是有了动力.学习过程也是曲 ...
- C#模拟鼠标操作以及键盘输入
模拟鼠标以及键盘基本输入源代码 using System; using System.Collections.Generic; using System.Linq; using System.Runt ...
- 【向重复工作说不】c#之模拟鼠标操作
一.写在前面 作为一个人力资源工作者,会经常遇到填表.报表的事务,其实有时候就是重复再重复的点击鼠标工作,特别是遇到一些复杂的客户端程序.网页程序,诸如用友客户端.社保管理系统等等,就尤其让人头疼.正 ...
最新文章
- 风变编程python小课课件_风变编程Python小课最近很火,大家学完感受如何?
- java用集合类求数组交并集_java 并集 数组/集合 有重复元素需 保留(急)
- java反射机制原理详解_java反射机制的详细讲解
- Redis中的zset 有序集合
- 【附可运行代码】剑指 Offer 12. 矩阵中的路径
- Vagrant+VirtualBox版本的坑
- linux 无线网卡休眠,无线网卡在Linux下活起来
- c++11 string u8_深入理解C++11:C++11新
- jsf集成spring_JSF – PrimeFaces和Hibernate集成项目
- 英语作文中常见的连接词
- 数据模型的作用和数据模型的三个要素:
- 网络协议:透彻解析HTTP协议
- 删软件怎么用计算机管理员删除,win10卸载软件需要管理员权限,卸载软件没有管理员权限...
- 记录一下向npmjs上发布包遇到的坑
- 格兰杰因果( Granger causality test)在神经科学中脑区功能连接上的应用
- Dynamic Few-Shot Visual Learning without Forgetting||论文阅读
- U盘在别人电脑上正常显示,插在自己电脑读不出来(只显示CD驱动器)
- gitlab ip变更runner拉取代码失败、shell启动springboot项目启动起来。
- VB 数据库交互(二)——经典五实例总结
- rip/eip/rbp/ebp