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中你应该知道的一些内置函数
Mar 31 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
Jul 24 Python
Python编程之Re模块下的函数介绍
Oct 28 Python
python实现SOM算法
Feb 23 Python
python字典排序的方法
Oct 12 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
详解Python的三种拷贝方式
Feb 11 Python
Django 再谈一谈json序列化
Mar 16 Python
python基于socket函数实现端口扫描
May 28 Python
解决Django响应JsonResponse返回json格式数据报错问题
Aug 09 Python
Python实现播放和录制声音的功能
Aug 12 Python
python通过cython加密代码
Dec 11 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实现调用自增数字从1开始的方法
2014/08/21 PHP
php输入流php://input使用浅析
2014/09/02 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
jQuery实现的Div窗口震动特效
2014/06/09 Javascript
AngularJS入门教程之学习环境搭建
2014/12/06 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
对python过滤器和lambda函数的用法详解
2019/01/21 Python
Python玩转Excel的读写改实例
2019/02/22 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
python动态规划算法实例详解
2020/11/22 Python
初中政治教学反思
2014/01/17 职场文书
期终自我鉴定
2014/02/17 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
无偿献血倡议书
2014/04/14 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
档案管理员岗位职责
2015/02/12 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL