Python selenium键盘鼠标事件实现过程详解


Posted in Python onJuly 28, 2020

引言

----在实际的web测试工作中,需要配合键盘按键来操作,webdriver的 keys()类提供键盘上所有按键的操作,还可以模拟组合键Ctrl+a,Ctrl+v等。

举例:

#cording=gbk
import os
import time
from selenium import webdriver
from selenium.webdriver.common.by import By #导入by方法
from selenium.webdriver.common.action_chains import ActionChains  ##对鼠标事件操作
from selenium.webdriver.common.keys import Keys # 对键盘事件操作

current_path=os.path.dirname(__file__)
firefox_path=current_path+"/../webdriver/geckodriver.exe"
driver=webdriver.Firefox(executable_path=firefox_path)
driver.get("http://www.baidu.com")

# 先输入百度
driver.find_element_by_id('kw').send_keys('百度')
time.sleep(3)
# 1.删除度
driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)
time.sleep(3)

#2.清空输入框,重新输入值
driver.find_element_by_id('kw').clear()
driver.find_element_by_id('kw').send_keys('安琪儿')
time.sleep(5)

# 3.ctrl+a 全选输入框里的内容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
time.sleep(3)

# 4.ctrl+x 剪切输入框里的内容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x')
time.sleep(3)

# 5. ctrl+v 粘贴剪切的内容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v')
time.sleep(3)

# 6. 回车
driver.find_element_by_id('su').send_keys(Keys.ENTER)
time.sleep(3)

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

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

  • context_click() :右击
  • double_click() :双击
  • drag_and_drop() :拖动
  • move_to_element() :鼠标移动到一个元素上

举例:

#cording=gbk
import os
from selenium import webdriver
from selenium.webdriver.common.by import By #导入by方法
from selenium.webdriver.common.action_chains import ActionChains  ##对鼠标事件操作

current_path=os.path.dirname(__file__)
firefox_path=current_path+"/../webdriver/geckodriver.exe"
driver=webdriver.Firefox(executable_path=firefox_path)
driver.get("http://127.0.0.1/zentao/user-login-L3plbnRhby9teS5odG1s.html")

mouse=ActionChains(driver) #创建一个鼠标对象
# element1=driver.find_element(By.XPATH,"//img[@src='/zentao/theme/default/images/main/zt-logo.png']") #Xpath利用属性定位
element1=driver.find_element(By.XPATH,"//img[contains(@src,'images/main/zt-logo.png')]") #xpath使用包含属性方法定位
mouse.context_click(element1).perform() #执行鼠标右击,.perform() 表示执行

element2=driver.find_element(By.XPATH,"//button[@type='button' and @class='btn' ]") #多属性定位
mouse.move_to_element(element2).perform() #移动到这个元素上

#对元素进行截图
driver.find_element(By.XPATH,"//button[@id='submit'][@type='submit']").screensh

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python获取DLL和EXE文件版本号的方法
Mar 10 Python
Python中的Classes和Metaclasses详解
Apr 02 Python
用Python编写脚本使IE实现代理上网的教程
Apr 23 Python
python获取局域网占带宽最大3个ip的方法
Jul 09 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
python 使用值来排序一个字典的方法
Nov 16 Python
如何在python中写hive脚本
Nov 08 Python
pytorch 改变tensor尺寸的实现
Jan 03 Python
如何查看Django ORM执行的SQL语句的实现
Apr 20 Python
python GUI计算器的实现
Oct 09 Python
Pandas对每个分组应用apply函数的实现
Dec 13 Python
Python first-order-model实现让照片动起来
Jun 25 Python
用python写爬虫简单吗
Jul 28 #Python
公认8个效率最高的爬虫框架
Jul 28 #Python
python如何爬取网页中的文字
Jul 28 #Python
Python同时处理多个异常的方法
Jul 28 #Python
Python远程方法调用实现过程解析
Jul 28 #Python
Python 实现一个计时器
Jul 28 #Python
python爬虫要用到的库总结
Jul 28 #Python
You might like
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
在Python的Django框架中显示对象子集的方法
2015/07/21 Python
python学习 流程控制语句详解
2016/06/01 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
python 调试冷知识(小结)
2019/11/11 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
歌唱比赛获奖感言
2014/01/21 职场文书
物理专业大学生职业生涯规划书
2014/02/07 职场文书
教师网络培训感言
2014/03/09 职场文书
村干部培训班主持词
2014/03/28 职场文书
应届毕业生自荐书
2014/06/18 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
全民创业工作总结
2015/08/13 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
Oracle中日期的使用方法实例
2022/07/07 Oracle