在webdriver中,鼠标的一些操作如:双击、右击、悬停、拖动等都被封装在ActionChains类中,我们只用在需要使用的时候,导入这个类就可以了。

0.ActionChains类提供的鼠标常用方法:

perform():执行所有 ActionChains 中存储的行为。

context_click():右击

double_click():双击

drag_and_drop():拖到

move_to_element():鼠标悬停

注意:

使用之前需要引入 ActionChains 类。

from selenium.webdriver.common.action_chains import ActionChains

鼠标右击实例

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains # 引入 ActionChains 类

browser = webdriver.Chrome()

browser.get('https://www.baidu.com')

# 定位到要右击的元素

right_click = browser.find_element_by_link_text('新闻')

# 对定位到的元素执行鼠标右键操作

#ActionChains(driver):调用ActionChains()类,并将浏览器驱动browser作为参数传入

#context_click(right_click):模拟鼠标双击,需要传入指定元素定位作为参数

#perform():执行ActionChains()中储存的所有操作,可以看做是执行之前一系列的操作

try:

ActionChains(browser).context_click(right_click).perform()

print('成功右击')

except Exception as e:

print('fail')

#输出内容:成功双击

注意:

ActionChains(driver):调用ActionChains()类,并将浏览器驱动browser作为参数传入

context_click(right_click):模拟鼠标双击,需要传入指定元素定位作为参数

perform():执行ActionChains()中储存的所有操作,可以看做是执行之前一系列的操作

1.鼠标右击

context_click():右击

# 鼠标右击

# 定位到要右击的元素

right_click = browser.find_element_by_id("xx")

# 对定位到的元素执行右击操作

ActionChains(browser).move_to_element(right_click ).perform()

2.鼠标双击

double_click():双击

# 定位到要右击的元素

double_click = browser.find_element_by_id('xx')

# 对定位到的元素执行鼠标右键操作

ActionChains(browser).context_click(double_click).perform()

3.鼠标拖动

drag_and_drop(source,target):拖动

source:开始位置;需要拖动的元素

target:结束位置;拖到后需要放置的目的地元素

# 开始位置:定位到元素的原位置

source = driver.find_element_by_id("xx")

# 结束位置:定位到元素要移动到的目标位置

target = driver.find_element_by_id("xx")

# 执行元素的拖放操作

ActionChains(driver).drag_and_drop(source,target).perform()

4.鼠标悬停

move_to_element():鼠标悬停

# 定位到要悬停的元素

move = driver.find_element_by_id("xx")

# 对定位到的元素执行悬停操作

ActionChains(driver).move_to_element(move).perform()

python模拟鼠标拖动_Python+Selenium自动化篇-6-模拟鼠标操作相关推荐

  1. python selenium模拟键盘_Python+Selenium自动化篇-7-模拟键盘操作

    0.导入键盘类Keys() selenium中的Keys()类提供了大部分的键盘操作方法:通过send_keys()方法来模拟键盘上的按键. # 导入键盘类 Keys() from selenium. ...

  2. python print 退格_Python+Selenium练习篇之12-组合键-退格键删除文字/鼠标右键

    退格键删除文字 前面一篇文章介绍了,常规清除文本输入框字符的方法clear(), 本文介绍 相关脚本代码如下,这里用百度首页搜索输入框举例: #coding=utf-8 importtimefrom ...

  3. python 头条 上传_Python+selenium自动化之文件上传

    邮箱的主要功能就是邮件消息的收发阅读,之前的文章写了邮件的查收和编写,本篇介绍邮件的附件上传.还是以腾讯企业邮箱为例,进行实际案例操作. 文件上传的实现大体分为两种,一种是input标签,一种非inp ...

  4. python自动切换链接_python+selenium自动化(四)之selenium切换窗口

    当我们点击某个链接时,切换换到另一个窗口,这时就需要跟随切换到新打开的页面,去定位元素. 1.获取当前页面句柄  current_window_handle importtimefrom seleni ...

  5. python自动化流程概念_python selenium 自动化流程的一些总结与思考

    首先要考虑的项目为什么要做自动化测试?(主要从自动化测试的优点着手) 其次是什么项目才适合做自动化测试? 自动化测试覆盖率要达到什么样的程度?因为都知道不可能达到100%的,不然脚本太臃肿,反而会失去 ...

  6. python 自动点击网页上按钮_python selenium自动化(一)点击页面链接测试

    需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回到原始页面. 要完成这个需求就必须实现3点: 1. 找 ...

  7. python火狐配置文件_Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类/Python读取配置文件内容...

    封装一个自己的类-浏览器引擎类 前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动 ...

  8. dnf自动刷图python脚本_python+selenium自动化登录dnf11周年活动界面领取奖励登录部分采坑总结[1]...

    背景: Dnf的周年庆活动之一,游戏在6月22日 06:00~6月23日 06:00之间登陆过游戏后可以于6月25日 16:00~7月04日 06:00领取奖励 目标:连续四天自动运行脚本,自动领取所 ...

  9. python自动化测试工具开发_Python+Selenium自动化测试教程连载(2)

    上一期介绍了自动化测试Python+Selenium框架的基本介绍,这期讲元素定位. 元素定位 1.WEB自动化时利器--浏览器自带开发者工具 几乎所有浏览器都自带前端调试工具,也就是我们说的开发者工 ...

最新文章

  1. Dojo学习13 dijit.Tree 动态添加节点之一
  2. myeclipse设置
  3. 侯捷:搞Windows程序设计我们需要啥
  4. 矩阵方阵matlab,求助!!错误使用 inv 矩阵必须为方阵。
  5. js调用c语言程序设计,HTML页面,测试JS对C函数的调用简单实例
  6. LockSupport
  7. 作者:武永卫(1974-),男,清华大学计算机科学与技术系教授
  8. 《Linux菜鸟入门2》访问网络文件系统
  9. java.lang.Runtime 运行时类 执行 dos 、cmd 命令、VBS 脚本
  10. 運行命令”msiexec”查看Windows Installer的版本
  11. matlab 非线性辨识,非线性系统辨识Matlab实现
  12. 新东方雅思词汇(List 41 ~ List 45)
  13. kpi绩效考核流程图_绩效考核流程图
  14. V4L2驱动框架详解
  15. i.e.、e.g.、etc.、et al、viz各种缩写都是什么意思?一文搞懂各种缩写
  16. 机器学习笔记 - 单位矩阵和逆矩阵
  17. 少儿计算机兴趣小组活动记录,小学美术兴趣小组活动记录
  18. 在VC中编程实现按钮的启用(enable)和禁用(disable)
  19. 超强反爬虫方案!Requests 什么的通通爬不了
  20. eclipse设置maven archetype

热门文章

  1. 「递归」第10集 | 一款“摔”出来的产品
  2. 令人惊叹的前端路由原理解析和实现方式
  3. Range回源和视频拖拽播放
  4. 简述回源原理和CDN常见多级缓存
  5. c++协程1 (boost::coroutine)
  6. Flume实操(三)【实时读取目录文件到HDFS案例】
  7. 分布式文件系统之Hdfs是什么?
  8. Zookeeper02_zk集群搭建
  9. 基于注解进行bean的装配
  10. leetcode 112. Path Sum, 113. Path Sum II | 112,113. 路径总和 I, II(Java)