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 28 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
Python2和3字符编码的区别知识点整理
Aug 08 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
python输入中文的实例方法
Sep 14 Python
Python+Xlwings 删除Excel的行和列
Dec 19 Python
Python爬虫定时计划任务的几种常见方法(推荐)
Jan 15 Python
yolov5返回坐标的方法实例
Mar 17 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
2014/11/15 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
详解vue组件基础
2018/05/04 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
举例详解Python中循环语句的嵌套使用
2015/05/14 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
python中import与from方法总结(推荐)
2019/03/21 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
python django中8000端口被占用的解决
2019/12/17 Python
Python版中国省市经纬度
2020/02/11 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
Python-for循环的内部机制
2020/06/12 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
保安部任务及岗位职责
2014/02/25 职场文书
市场调查策划方案
2014/06/10 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
小学音乐课教学反思
2016/02/18 职场文书
python中redis包操作数据库的教程
2022/04/19 Python
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers