一、前言

除了可以使用 click( ) 来模拟鼠标的单击操作,现在Web产品中还提供了更丰富的鼠标交互方式,例如鼠标右键、双击、悬停、拖动等功能,在WebDriver中,将这些关于鼠标操作的方法都封装在 ActionChains 类中。

ActionChains 类提供了鼠标操作的常用方法:
perform()    执行所有ActionChains中存储的行为
context_click()    右击
double_click()    双击
drag_and_drop()    拖动
move_to_element()    鼠标悬停

二、详细使用

1.鼠标右击操作

from selenium import webdriver
    #引入ActionChains类
    from selenium.webdriver.common.action_chains import ActionChains
     
    driver = webdriver.Chrome()
    driver.get("url")
    #......
    #定位到需要右击的元素
    right_click = driver.find_element_by_id("id")
    #对元素进行右击操作
    ActionChains(driver).context_click(right_click).perform()
    #......

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

perform():执行所有ActionChains中存储的行为,可以理解成是对整个操作的提交动作;

2.鼠标悬停

move_to_element()方法可以模拟鼠标悬停的动作,其用法与context_click()相同;

from selenium import webdriver
    #引入ActionChains类
    from selenium.webdriver.common.action_chains import ActionChains
     
    driver = webdriver.Chrome()
    driver.get("url")
    #......
    #定位到需要悬停的元素
    above = driver.find_element_by_id("id")
    #对元素进行右击操作
    ActionChains(driver).move_to_element(above).perform()
    #......

3.鼠标双击

double_click() 方法用于模拟鼠标双击操作;

from selenium import webdriver
    #引入ActionChains类
    from selenium.webdriver.common.action_chains import ActionChains
     
    driver = webdriver.Chrome()
    driver.get("url")
    #......
    #定位到需要双击的元素
    double_click = driver.find_element_by_id("id")
    #对元素进行右击操作
    ActionChains(driver).double_click(double_click).perform()
    #......

4.鼠标拖动操作

drag_and_drop(source,target) 在源位置元素上按住鼠标左键,然后移动到目标元素上释放。

source:鼠标拖动的源元素

target:鼠标释放的目标元素

from selenium import webdriver
    #引入ActionChains类
    from selenium.webdriver.common.action_chains import ActionChains
     
    driver = webdriver.Chrome()
    driver.get("url")
    #......
    #定位元素的源位置
    source = driver.find_element_by_id("id")
    #定位元素要移到到的目标位置
    target = driver.find_element_by_id("id")
    #对元素进行拖动操作
    ActionChains(driver).drag_and_drop(source,target).perform()
---------------------
作者:一条漂浮的枫叶
来源:CSDN
原文:https://blog.csdn.net/zb455405775/article/details/80675718
版权声明:本文为博主原创文章,转载请附上博文链接!

python+selenium 鼠标事件操作的更多相关文章

  1. 9 Python+Selenium鼠标事件

    [环境信息] python3.6+Selenium3.0.2+Firefox50.0+win7 [ActionChains类鼠标事件的常用方法] 1.右击:context_click() 2.双击:d ...

  2. python selenium --鼠标事件

    转自:http://www.cnblogs.com/fnng/p/3288444.html 本节重点: ActionChains 类 context_click()  右击 double_click( ...

  3. selenium 鼠标事件操作

    1.操作鼠标事件的类:ActionChains  perform()  执行所有ActionChains中存储的行为 context_click()  右击 double_click()   双击 d ...

  4. python selenium鼠标键盘操作(ActionChains)

    用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件--ActionChains sele ...

  5. python selenium鼠标滑动操作

    先安装pyautogui: pip install pyautogui #coding=utf-8 import pyautogui from selenium import webdriver fr ...

  6. python+selenium_鼠标事件

    引言--在实际的web产品测试中,对于鼠标的操作,不单单只有click(),有时候还要用到右击.双击.拖动等操作,这些操作包含在ActionChains类中. 一.ActionChains类中鼠标操作 ...

  7. python模拟鼠标拖动操作的方法

    本文实例讲述了python模拟鼠标拖动操作的方法.分享给大家供大家参考.具体如下: pdf中的书签只有页码,准备把现有书签拖到一个目录中,然后添加自己页签.重复的拖动工作实在无趣,还是让程序帮我实现吧 ...

  8. Python+selenium鼠标、键盘事件

    鼠标操作 现在的Web产品提供了丰富的鼠标交互方式,例如鼠标右击.双击.悬停.甚至是鼠标拖动等功能,在Webdriver中,将这些关于鼠标操作的方法封装在ActionChains类提供. 1.鼠标右击 ...

  9. selenium的鼠标事件操作

    自动化测试过程中,经常会用到鼠标事件,在selenium的action_chains模块的ActionChains定义了鼠标操作的一些事件,要使用ActionChains类中的方法,首先需要对Acti ...

随机推荐

  1. Spring注解和JDK注解

    1.添加xsd约束 xmlns:context="http://www.springframework.org/schema/context" http://www.springf ...

  2. [转]AngularJS移动开发中的坑汇总

    使用AngualrJs开发移动App已经快半年了,逐渐积累了很多AngularJS的问题,特别是对于用惯了Jquery的开发者,转到AngularJS还是需要克服很多问题的.不像Jquery那样侧重D ...

  3. IBatis.net特性展示代码

    最近公司计划设计新业务平台架构.数据访问层框架要使用ibatis.net.头让我做些例子给其他同事演示下 ibatis的基本特性.然后评估下看是否使用.本来以后上官方下载NPetshop演示下就行了那 ...

  4. texlive安装

    本人电脑系统win8.1,安装texlive2016的时候报错"Can't spawn "cmd.exe": No such file or directory at.. ...

  5. android布局带参返回

    package com.lxj.lesson2_3ID19; import com.example.lesson2_3_id19.R; import com.lxj.other.AgeActivity ...

  6. java文件读写链接流向

    1)字节流 读写的链接流向源节点->FileInputStream->BufferedInputStream->ObjectInputStream->程序 程序->Obj ...

  7. softmax_loss.cu 和 softmax_loss.cpp源码

    #include <algorithm> #include <cfloat> #include <vector> #include "caffe/laye ...

  8. C++ C++ 值传递、指针传递、引用传递详解

    这一篇博客写的不错: https://www.cnblogs.com/dingxiaoqiang/p/8012578.html

  9. python爬虫---实现项目(四) 用BeautifulSoup分析新浪新闻数据

    这次只演示了,如何在真实项目内用到BeautifulSoup库来解析网页,而新浪的新闻是ajax加载过来的数据,在这里我们只演示解析部分数据(具体反扒机制没做分析). 代码地址:https://git ...

  10. C语言中函数参数传递

    C语言中函数参数传递的三种方式 (1)值传递,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值.(2)地址传递,就是把 ...