场景

前景讲解了鼠标的click()事件,而我们在实际的web产品测试中,有关鼠标的操作,不仅仅只有单击,有时候还包括右击,双击,拖动等操作,这些操作包含在ActionChains类中。

ActionChains类鼠标操作的常用方法:

  • context_click()                           右击
  • double_click()                           双击
  • drag_and_drop()                      拖动
  • move_to_element()                 鼠标悬停在一个元素上
  • click_and_hold()                     点击鼠标左键,不松开

鼠标事件

1.鼠标右击事件

#!/usr/bin/env python
# -*- codinfg:utf-8 -*-
'''
@author: Jeff LEE
@file: 鼠标事件.py
@time: 2018-09-21 14:14
@desc:
'''
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') #定位需要右击元素
right = driver.find_element_by_id("kw")
#对定位对象进行右击操作
ActionChains(driver).context_click(right).perform() time.sleep(2)
driver.quit()

  ActionChains用于生成用户的行为;所有的行为都存储在actionchains对象,通过perform()执行存储的行为

perform()执行所有ActionChains存储的行为,perform()同样也是ActionChains类提供的方法,通常他们配合使用

2.鼠标双击事件

#!/usr/bin/env python
# -*- codinfg:utf-8 -*-
'''
@author: Jeff LEE
@file: 鼠标事件.py
@time: 2018-09-21 14:14
@desc:
'''
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') #定位需要双击元素
double = driver.find_element_by_id("kw")
#对定位对象进行双击击操作
ActionChains(driver).double_click(double).perform() time.sleep(2)
driver.quit()

  对于操作系统的操作来说,双击使用比较频繁,带对于web而言,比较少

3.鼠标拖放操作

drag_and_drop(source,target)

在源元素上按下鼠标,然后移动到目标元素释放

source:鼠标按下的源元素

target:鼠标释放的目的元素

#!/usr/bin/env python
# -*- codinfg:utf-8 -*-
'''
@author: Jeff LEE
@file: 鼠标事件.py
@time: 2018-09-21 14:14
@desc:
'''
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') #定位源元素
source = driver.find_element_by_id("xx")
#定位目的元素
target = driver.find_element_by_id("xx")
#执行移动操作
ActionChains(driver).drag_and_drop(source,target).perform() time.sleep(2)
driver.quit()

4.移动鼠标到元素上

#!/usr/bin/env python
# -*- codinfg:utf-8 -*-
'''
@author: Jeff LEE
@file: 鼠标事件.py
@time: 2018-09-21 14:14
@desc:
'''
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') #定位元素
above = driver.find_element_by_id("xx")
#执行移动操作
ActionChains(driver).move_to_element(above).perform() time.sleep(2)
driver.quit()

5.按下鼠标左键不松开

#!/usr/bin/env python
# -*- codinfg:utf-8 -*-
'''
@author: Jeff LEE
@file: 鼠标事件.py
@time: 2018-09-21 14:14
@desc:
'''
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') #定位元素
aa=driver.find_element_by_id("su")
#执行点击元素不松开
ActionChains(driver).click_and_hold(aa).perform() time.sleep(2)
driver.quit()

  

Python+Selenium学习--鼠标事件的更多相关文章

  1. Python+Selenium学习--键盘事件

    场景 我们在实际的测试工作中,有时候需要使用tab键将焦点移动到下一个元素,用于验证元素的排序是否正确.webdriver的Keys()类提供键盘上所有的操作,甚至可以模拟一些组合键的操作,如Ctrl ...

  2. 【python+selenium学习】Python常见错误之:IndentationError: unexpected indent

    初入python+selenium学习之路,总会遇到这样那样的问题.IndentationError: unexpected indent,这个坑我已经踏进数次了,索性记录下来.都知道Python对代 ...

  3. Python自动化学习--鼠标和键盘事件

    from selenium import webdriver from selenium.webdriver import ActionChains import time driver = webd ...

  4. selenium-webdriver(python) (十五) -- 鼠标事件

    本节重点: ActionChains 类 context_click()  右击 double_click()   双击 drag_and_drop()  拖动 测试的产品中有一个操作是右键点击文件列 ...

  5. selenium的鼠标事件操作

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

  6. Python+Selenium学习--自动化测试模型

    前言 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块.自动化测试框架在发展的过程中经历了几个阶段,模块驱动测试.数据驱动测试.对 ...

  7. jQuery学习-鼠标事件

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Python+Selenium学习笔记15 - 读取txt和csv文件

    读取txt的内容并用百度查找搜索 1 # coding = utf-8 2 3 from selenium import webdriver 4 import time 5 6 # 打开浏览器 7 d ...

  9. Python+Selenium学习--下拉框处理

    场景 下拉框也是web 页面上非常常见的功能,webdriver 对于一般的下拉框处理起来也相当简单,要想定位下拉框中的内容,首先需要定位到下拉框:这样的二次定位 下拉框一般有以下两种方式: 鼠标移上 ...

随机推荐

  1. C++11并发之std::thread<转>

    最近技术上没什么大的收获,也是悲催的路过~ 搞一点新东西压压惊吧! C++11并发之std::thread 知识链接: C++11 并发之std::mutex C++11 并发之std::atomic ...

  2. Tornado的安装使用

    https://blog.csdn.net/a312024054/article/details/52207367 tornado原理: tornado的使用 import tornado.ioloo ...

  3. 推荐一款idea 翻译插件 ECTranslation

    无意中看到一款idea翻译插件, ECTranslation,才知道有这么个东西,推荐给看到的人吧,使用简单,值得拥有. 参考:http://p.codekk.com/detail/Android/S ...

  4. django403错误(转)

    原文:http://blog.sina.com.cn/s/blog_60ccc6e101011ku0.html 处理过程 1.按提示及google结果修改setting.py,在MIDDLEWARE_ ...

  5. Mybatis if 判断等于一个字符串

    在做开发的时候遇到这样一个问题:当传入的type的值为y的时候,if判断内的sql也不会执行.   <if test="type=='y'">   and status ...

  6. 尚硅谷redis学习3-redis启动以后的杂项

    redis速度很快,运行benchmark可以看出,各项运行速度可达100000次每秒 redis默认有16个数据库,分别是0, 1 ... 15,默认在0号库,可以通过select num转到其它库 ...

  7. 安装安卓SDK和JDK的简便方法

    直接在VS的安装程序里选:使用.NET的移动开发,其中就包括了安卓SDK,JAVA SE等 另外:自己手动安装SDK时,不要选模拟器相关的东西,太大了,如果每个版本都选,安装下来上100G以上

  8. 焊接关节(Weld Joint)

    package{ import Box2D.Common.Math.b2Vec2; import Box2D.Dynamics.b2Body; import Box2D.Dynamics.Joints ...

  9. 二叉堆复习(包括d堆)

    要期中考了……我真的是什么也不会啊,书都没看过TAT. 好吧整理一下二叉堆,这里就以最大堆为例好了. 首先二叉堆其实是一棵CBT,满足父节点的键值大于左右子节点的键值(wikipedia把这个叫键值, ...

  10. [namespace]PHP命名空间的动态访问 & 使用技巧

    ----------------------------------------------------------------------------------------------- /* | ...