Python+Selenium自动化 模拟鼠标操作

 

在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+Selenium自动化 模拟鼠标操作的更多相关文章

  1. Python+Selenium自动化-模拟键盘操作

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

  2. selenium自动化之鼠标操作

    在做自动化测试的时候,经常会遇到这种情况,某个页面元素,你必须要把鼠标移动到上面才能显示出元素.那么这种情况,我们怎么处理呢?,selenium给我们提供了一个类来处理这类事件——ActionChai ...

  3. Python + Selenium + AutoIt 模拟键盘实现另存为、上传、下载操作详解

    前言 在web页面中,可以使用selenium的定位方式来识别元素,从而来实现页面中的自动化,但对于页面中弹出的文件选择框,selenium就实现不了了,所以就需引用AutoIt工具来实现. Auto ...

  4. python之selenium玩转鼠标操作(ActionChains)

    前提: 一般人用selenium自动化时,会用到模拟鼠标操作的情况,像单击,双击,右击,左击啊等,这个时候我们就要用到ActionChains了. 内容: 1.ActionChains用法整理 cli ...

  5. Python+Selenium自动化总结

    Python+Selenium自动化总结 1.环境搭建 1.1.安装selenium模块文件 pip install selenium 1.2.安装ChromeDriver驱动 [1]下载安装Chro ...

  6. Python+Selenium自动化-清空输入框、输入内容、点击按钮

    Python+Selenium自动化-清空输入框.输入内容.点击按钮   1.输入内容 send_keys('valve'):输入内容valve #定位输入框 input_box = browser. ...

  7. 模拟鼠标操作(ActionChains)(转 侵删)

    在日常的测试中,经常会遇到需要鼠标去操作的一些事情,比如说悬浮菜单.拖动验证码等,这一节我们来学习如何使用webdriver模拟鼠标的操作 首页模拟鼠标的操作要首先引入ActionChains的包 f ...

  8. Python+Selenium自动化-安装模块和浏览器驱动操作方法

    Python+Selenium自动化-安装模块和浏览器驱动操作方法 1.安装模块文件 pip install selenium 2.安装浏览器驱动 我们主要用的浏览器驱动有chrome浏览器.fire ...

  9. python selenium自动化点击页面链接测试

    python selenium自动化点击页面链接测试 需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回 ...

随机推荐

  1. 逻辑引擎、工作流、CMDB小感

    工作流是啥? 在界面上画画点点就能生成代码,这是很吸引人的事情,也是很多自动化工具追求的目标.工作流就是这么一个东西,通过定义流程和输入,就能实现你想要的东西,不需要编写代码. 工作流的实现 通过解析 ...

  2. Netty 框架学习 —— 第一个 Netty 应用

    概述 在本文,我们将编写一个基于 Netty 实现的客户端和服务端应用程序,相信通过学习该示例,一定能更全面的理解 Netty API 该图展示的是多个客户端同时连接到一台服务器.客户端建立一个连接后 ...

  3. 【Scrapy(一)】 Scrapy爬虫的基础执行流程

    安装scrapy模块 : pip install scrapy  创建scrapy项目 1.scrapy startprojecty 项目名称  注意:如果创建失败,可以先卸载原有的scrapy模块, ...

  4. 【Vue】Vue学习(四)-状态管理中心Vuex的简单使用

    一.vuex的简介 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.Vuex背后的基本思想,就是前面所说的单向数据流.图4就是Vuex实现单向数据流的示意图.    Store     ...

  5. POJ3498最大流,枚举终点,企鹅,基础最大流

    题意:       有一n个冰块,每个冰块上都有一些企鹅,所有的企鹅要跳到一个冰块上去,但是由于起跳是的后坐力原因导致每个冰块最多条mi次,最后问你所有的企鹅都跳到一个冰块上去的那块冰块可以是哪一块, ...

  6. POJ2391 Floyd+离散化+二分+DINIC

    题意:       有n个猪圈,每个猪圈里面都有一定数量的猪(可能大于当前猪圈的数量),每个猪圈都有自己的容量,猪圈与猪圈之间给出了距离,然后突然下雨了,问多久之后所有的猪都能进圈. 思路:     ...

  7. UVA11020 优势人群(multiset)

    题意:       给你N个人,每个人有两个权值,x,y对于某一个人,如果不存在某一个人x' y', x' < x && y' <= y 或者x' <= x & ...

  8. XCTF-FlatScience

    FlatScience 题目描述 啥描述也没有 解题过程 页面有好多链接,除了论文pdf之外,还有子目录下的index.html, 比如:/1/index.html,/1/3/index.html 扫 ...

  9. 【CSS】CSS3从入门到深入(复习查漏向

    CSS3从入门到深入(复习查漏向 pre_section CSS:层叠样式表,决定网页表现 网页为多层结构,CSS为每一层设置样式,最后显示最上一层 CSS语句 = 选择器 + 声明块 形式 内联样式 ...

  10. Masm32sdk安装指南

    上一年学习win32汇编时用的masm32sdk不是最新版本的.因为最近准备继续学习win32汇编,所以准备安装最新的masm32sdk软件包.其中遇到了一些问题,从网上找了2个小时才搞定(宝宝心里苦 ...