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实现的一只从百度开始不断搜索的小爬虫
Aug 13 Python
python聊天程序实例代码分享
Nov 18 Python
在Python中使用PIL模块处理图像的教程
Apr 29 Python
pytorch + visdom CNN处理自建图片数据集的方法
Jun 04 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
python实现随机漫步方法和原理
Jun 10 Python
Python文件路径名的操作方法
Oct 30 Python
Python实现FLV视频拼接功能
Jan 21 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
Python读取JSON数据操作实例解析
May 18 Python
python 简单的调用有道翻译
Nov 25 Python
Python 可视化神器Plotly详解
Dec 26 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
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
smarty自定义函数用法示例
2016/05/20 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
2019/05/30 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
Django如何使用redis作为缓存
2020/05/21 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
python openssl模块安装及用法
2020/12/06 Python
PHP如何删除一个Cookie值
2012/11/15 面试题
葡萄牙语专业个人求职信
2013/12/10 职场文书
店长助理岗位职责
2013/12/13 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python