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实现2048小游戏
Jan 19 Python
python获取外网IP并发邮件的实现方法
Oct 01 Python
python测试mysql写入性能完整实例
Jan 18 Python
python筛选出两个文件中重复行的方法
May 31 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
浅谈python 导入模块和解决文件句柄找不到问题
Dec 15 Python
python 求某条线上特定x值或y值的点坐标方法
Jul 09 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
Sep 16 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
Feb 21 Python
pytorch 常用函数 max ,eq说明
Jun 28 Python
Python获取android设备cpu和内存占用情况
Nov 15 Python
python 进制转换 int、bin、oct、hex的原理
Jan 13 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常用字符串比较函数实例汇总
2014/11/24 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
PHP 验证登陆类分享
2015/03/13 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
linecache模块加载和缓存文件内容详解
2018/01/11 Python
Python学生信息管理系统修改版
2018/03/13 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
python安装本地whl的实例步骤
2019/10/12 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
检测浏览器对HTML5和CSS3支持度的方法
2015/06/25 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
2014年党支部承诺书
2014/05/30 职场文书
生产助理岗位职责
2014/06/18 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
《称赞》教学反思
2016/02/17 职场文书
合作合同协议书
2016/03/21 职场文书
vue首次渲染全过程
2021/04/21 Vue.js