Python+Selenium学习--鼠标事件
场景
前景讲解了鼠标的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学习--鼠标事件的更多相关文章
- Python+Selenium学习--键盘事件
场景 我们在实际的测试工作中,有时候需要使用tab键将焦点移动到下一个元素,用于验证元素的排序是否正确.webdriver的Keys()类提供键盘上所有的操作,甚至可以模拟一些组合键的操作,如Ctrl ...
- 【python+selenium学习】Python常见错误之:IndentationError: unexpected indent
初入python+selenium学习之路,总会遇到这样那样的问题.IndentationError: unexpected indent,这个坑我已经踏进数次了,索性记录下来.都知道Python对代 ...
- Python自动化学习--鼠标和键盘事件
from selenium import webdriver from selenium.webdriver import ActionChains import time driver = webd ...
- selenium-webdriver(python) (十五) -- 鼠标事件
本节重点: ActionChains 类 context_click() 右击 double_click() 双击 drag_and_drop() 拖动 测试的产品中有一个操作是右键点击文件列 ...
- selenium的鼠标事件操作
自动化测试过程中,经常会用到鼠标事件,在selenium的action_chains模块的ActionChains定义了鼠标操作的一些事件,要使用ActionChains类中的方法,首先需要对Acti ...
- Python+Selenium学习--自动化测试模型
前言 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块.自动化测试框架在发展的过程中经历了几个阶段,模块驱动测试.数据驱动测试.对 ...
- jQuery学习-鼠标事件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Python+Selenium学习笔记15 - 读取txt和csv文件
读取txt的内容并用百度查找搜索 1 # coding = utf-8 2 3 from selenium import webdriver 4 import time 5 6 # 打开浏览器 7 d ...
- Python+Selenium学习--下拉框处理
场景 下拉框也是web 页面上非常常见的功能,webdriver 对于一般的下拉框处理起来也相当简单,要想定位下拉框中的内容,首先需要定位到下拉框:这样的二次定位 下拉框一般有以下两种方式: 鼠标移上 ...
随机推荐
- C# IIS 服务器上传图片500解决办法
- leetcode435
使用贪心思想,先按照end排序,然后依次寻找下一个(结束时前最早的)不重叠的区域,这样就得到了数量最多的构成不重叠的区域的数量,再用总数量减去最大不重叠区域的数量,就得到了最少的会引起重叠的区域的数量 ...
- python-玉米(小米)商城作业
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 1.ossutil初步使用
ossutil对应的阿里云参考文档链接地址: https://help.aliyun.com/document_detail/50452.html?spm=a2c4g.11186623.6.1355. ...
- mssqlservers数据嗅探
SQL Server - 最佳实践 - 参数嗅探问题 转. 文章来自:https://yq.aliyun.com/articles/61767 先说我的问题,最近某个存储过程,暂定名字:sp_a ...
- Android中查看SQLite中字段数据的两种方式
方式一:ADB Pull 通过adb pull导出*.db文件到PC的文件夹中,通过可视化工具 SQLiteExpertPers 进行查看.编辑: adb pull /data/data/com.jo ...
- VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法
1.使用CTime类(获取系统当前时间,精确到秒) CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime();//获取系统日期 str=tm ...
- C# 图像处理:记录图像处理时间的一个类
class HiPerTimer { [DllImport("user32.dll")] static extern bool GetLastInputInfo(ref LASTI ...
- 获取tensorflow中tensor的值
tensorflow中的tensor值的获取: import tensorflow as tf #定义变量a a=tf.Variable([[[1,2,3],[4,5,6]],[[7,8,9],[10 ...
- SpringBoot(十一)过滤器和拦截器
v博客前言 在做web开发的时候,过滤器(Filter)和拦截器(Interceptor)很常见,通俗的讲,过滤器可以简单理解为“取你所想取”,忽视掉那些你不想要的东西:拦截器可以简单理解为“拒你所想 ...