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 Django(图文)
Nov 04 Python
python根据经纬度计算距离示例
Feb 16 Python
python基础教程之匿名函数lambda
Jan 17 Python
pandas全表查询定位某个值所在行列的方法
Apr 12 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
python脚本当作Linux中的服务启动实现方法
Jun 28 Python
详解用python生成随机数的几种方法
Aug 04 Python
python sorted函数原理解析及练习
Feb 10 Python
python中if及if-else如何使用
Jun 02 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
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
优化使用mysql存储session的php代码
2008/01/10 PHP
PHP类的反射用法实例
2014/11/03 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
Angular的$http与$location
2016/12/26 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
用Python程序抓取网页的HTML信息的一个小实例
2015/05/02 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
Python接口测试文件上传实例解析
2020/05/22 Python
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
硕士生找工作求职信
2014/07/05 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
实习证明格式范文
2014/10/14 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
python lambda 表达式形式分析
2022/04/03 Python
实战Python爬虫爬取酷我音乐
2022/04/11 Python
Redis如何实现验证码发送 以及限制每日发送次数
2022/04/18 Redis