鼠标操作方法

 
1、常见的鼠标操作
 
  点击、右击、双击、悬停、拖拽等
 
2、selenium中的封装鼠标操作
 
  说明:在Selenium中将操作鼠标的方法封装在ActionChains类中
 
  实例化对象:
    action = ActionChains(driver)
  方法:
  1. context_click(element) 右击 -->         模拟鼠标右键点击效果
  2. double_click(element) 双击 -->         模拟鼠标双击效果
  3. drag_and_drop(source, target) 拖动 -->     模拟鼠标拖动效果
  4. move_to_element(element) 悬停 -->       模拟鼠标悬停效果
  5. perform() 执行 -->               此方法用来执行以上所有鼠标操作
为了更好的学习其他方法,我们先学习perform()执行方法,因为所有的方法都需要执行才能生效
 
3、鼠标执行操作
 
操作完鼠标后,不会执行,需要调用执行操作,将执行的对象放到perform方法中
 
强调:必须调用perform()方法才能执行鼠标事件
 
①鼠标右键-context_click()
 
  点击鼠标右键,如果弹出的是浏览器默认的菜单,Selenium没有提供操作菜单选项的方法;
  如果是自定义的右键菜单,则可以通过元素定位来操作菜单中的选项
 
练习1:打开微博页面,定位搜素框,鼠标右键

1.导包:from selenium.webdriver.common.action_chains import ActionChains
2. 实例化ActionChains对象:action = ActionChains(driver)
3. 调用右键方法:action.context_click(element)
4. 执行:action.perform()
 
②鼠标双击-double_click()
 
说明:模拟双击鼠标左键操作
 
练习2:打开微博页面,搜索框输入糯米团,暂停3秒钟后,双击鼠标左键,选中糯米团
③ 鼠标拖动-drag_and_drop()
 
说明:模拟鼠标拖动动作,选定拖动源元素释放到目标元素
 
  拖动关键点分析:
 
    1. 源元素 source = driver.find_element_by_id(xxx)
    2. 目标元素 target = driver.find_element_by_id(xxx)
    3. 调用方法 action.drag_and_drop(source, target).perform()
 
④鼠标悬停-move_to_element()
 
  说明: 模拟鼠标悬停在指定的的元素上
 
练习3:打开百度首页,模拟鼠标悬停在个人头像中
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

web自动化05-鼠标操作的更多相关文章

  1. 【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

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

    Python+Selenium自动化 模拟鼠标操作   在webdriver中,鼠标的一些操作如:双击.右击.悬停.拖动等都被封装在ActionChains类中,我们只用在需要使用的时候,导入这个类就 ...

  3. web自动化 模拟鼠标、键盘操作

    一.鼠标操作 1.1鼠标的悬停操作,move_to_element from selenium import webdriver from selenium.webdriver.common.acti ...

  4. web自动化之键盘操作

    简单介绍下web自动化怎么触发键盘操作 按键操作 需要导入的类from selenium.webdriver.common.keys import Keys 组合键Keys.CONTROL 也就是我们 ...

  5. web自动化之鼠标事件

    鼠标操作from selenium.webdriver.common.action_chains import ActionChains通过ActionChains 类来完成鼠标操作主要操作流程:1. ...

  6. selenium自动化之鼠标操作

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

  7. web自动化之iframe操作

    from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from seleni ...

  8. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  9. 【Selenium04篇】python+selenium实现Web自动化:文件上传,Cookie操作,调用 JavaScript,窗口截图

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第四篇博 ...

  10. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

随机推荐

  1. Typora编辑区域空白过大问题

    参考博客:https://blog.csdn.net/m0_55485287/article/details/115207178 在哪个文件编辑? 1.找到使用的主题,打开主题文件夹 2.找到对应的c ...

  2. 【读书笔记】排列研究-模式避免-续篇Pattern Avoidance

    目录 多项式递归Polynomial Recursions P-recursive和c-recursive定义 例子:卡特兰数序列是P-recursive(或者说D-finite) 两个说明\(S_n ...

  3. 命令行启动kate||cmd启动kate|| 一行命令用kate编辑文件

    命令行启动kate||cmd启动kate|| 一行命令用kate编辑文件 先看: 在得知可以在命令行中输入code以启用vscode编辑器后 例 code D:\dLevel\Lenovo\Deskt ...

  4. Gin实践

    // func New() *Engine // func Default() *Engine engine := New() engine.Use(Logger(), Recovery()) 由源代 ...

  5. panda之series结构

    eries 结构,也称 Series 序列,是 Pandas 常用的数据结构之一,它是一种类似于一维数组的结构,由一组数据值(value)和一组标签组成,其中标签与数据值之间是一一对应的关系.Seri ...

  6. [Java SE]Java版本特性解读:java.util.Optional [JDK1.8-]

    1 概述 本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空(null/empty). Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范 ...

  7. [软件工程]TO B型IT软件企业在工程管理角度所存在的诸多问题

    组织架构与分工? 各子组织的职责.边界是否明确? (安装.升级)部署规范? 必须有部署文档. 各个模块/组件部署在哪台服务器?哪个路径下? 一切非正式启用的任务.文件(夹).安装资料必须依据实际用途以 ...

  8. Solon2 之 Groovy 语言开发后端接口项目

    今天再做个新的尝试,用 Solon 框架写个 Groovy 后端项目.借助 "Solon Initializr" 生成个项目模板,会比较方便. 1.生成项目模板 打开"S ...

  9. 回顾.NET系列:Framework、Net Core、Net 过往

    目录 一.个人最近工作变化 二.Framework.Net Core..NET 时过境迁 Framework:爱你定格在4.8 .Net Foundation:.Net变革大脑 重新统一的 .NET ...

  10. keycloak~时间不正确的问题

    首先我们应该知道,写到数据库里的时间,主要和你的mysql时区system_time_zone有关,而把mysql里的数据取出来,以json形式响应到浏览器上,这个时间会经过反序列化的过程,这时时间和 ...