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怎么学好python?
Oct 07 Python
手动实现把python项目发布为exe可执行程序过程分享
Oct 23 Python
python服务器与android客户端socket通信实例
Nov 12 Python
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
python查看zip包中文件及大小的方法
Jul 09 Python
Python中修改字符串的四种方法
Nov 02 Python
详解js文件通过python访问数据库方法
Mar 03 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
常用python爬虫库介绍与简要说明
Jan 25 Python
pandas dataframe 中的explode函数用法详解
May 18 Python
关于Python3爬虫利器Appium的安装步骤
Jul 29 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 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
一个显示天气预报的程序
2006/10/09 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
DWR Ext 加载数据
2009/03/22 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
python 字典访问的三种方法小结
2019/12/05 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
编写函数,将一个3*3矩阵转置
2013/10/09 面试题
社区八一活动方案
2014/02/03 职场文书
标准毕业生自荐信
2014/06/24 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
退税申请报告怎么写
2015/05/18 职场文书
借款民事起诉状范文
2015/05/19 职场文书
学籍证明模板
2015/06/18 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android