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 相关文章推荐
以一段代码为实例快速入门Python2.7
Mar 31 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
Python os.rename() 重命名目录和文件的示例
Oct 25 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
Python的in,is和id函数代码实例
Apr 18 Python
解决reload(sys)后print失效的问题
Apr 25 Python
Django CBV模型源码运行流程详解
Aug 17 Python
Python2及Python3如何实现兼容切换
Sep 01 Python
python实现发送带附件的邮件代码分享
Sep 22 Python
python time.strptime格式化实例详解
Feb 03 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
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
jQuery 创建Dom元素
2010/05/07 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
Python实现的简单算术游戏实例
2015/05/26 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
python3将变量输入的简单实例
2020/08/19 Python
python实现经典排序算法的示例代码
2021/02/07 Python
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书