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中的JSON使用
Apr 28 Python
Python文件去除注释的方法
May 25 Python
Python3 log10()函数简单用法
Feb 19 Python
解决Tensorboard 不显示计算图graph的问题
Feb 15 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
Python类及获取对象属性方法解析
Jun 15 Python
Python常用模块函数代码汇总解析
Aug 31 Python
去除python中的字符串空格的简单方法
Dec 22 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
Feb 26 Python
详细介绍python类及类的用法
May 31 Python
Python3接口性能测试实例代码
Jun 20 Python
Python实现照片卡通化
Dec 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
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
php array_walk() 数组函数
2011/07/12 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
JavaScript 继承的实现
2009/07/09 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
js实现购物车功能
2018/06/12 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
Python自动连接ssh的方法
2015/03/07 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
python爬取哈尔滨天气信息
2018/07/14 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
七年级地理教学反思
2014/01/26 职场文书
财务情况说明书范文
2014/05/06 职场文书
大四毕业生自荐书
2014/07/05 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
小学美术教学反思
2016/02/17 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python