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单链表实现代码实例
Nov 21 Python
python的文件操作方法汇总
Nov 10 Python
使用python 和 lint 删除项目无用资源的方法
Dec 20 Python
Python使用progressbar模块实现的显示进度条功能
May 31 Python
浅谈django orm 优化
Aug 18 Python
对Python中实现两个数的值交换的集中方法详解
Jan 11 Python
seek引发的python文件读写的问题及解决
Jul 26 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
使用Python实现 学生学籍管理系统
Nov 26 Python
Python TCPServer 多线程多客户端通信的实现
Dec 31 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
Apr 27 Python
Python如何给函数库增加日志功能
Aug 04 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 采集程序中常用的函数
2009/12/09 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
vuejs如何配置less
2017/04/25 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
Python实现修改IE注册表功能示例
2018/05/10 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
深入解析神经网络从原理到实现
2019/07/26 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
python numpy中cumsum的用法详解
2019/10/17 Python
python模块如何查看
2020/06/16 Python
Python 高效编程技巧分享
2020/09/10 Python
网页设计个人找工作求职信
2013/11/28 职场文书
五年级科学教学反思
2014/02/05 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
党组织结对共建协议书
2016/03/23 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android