Python+selenium鼠标、键盘事件
鼠标操作
现在的Web产品提供了丰富的鼠标交互方式,例如鼠标右击、双击、悬停、甚至是鼠标拖动等功能,在Webdriver中,将这些关于鼠标操作的方法封装在ActionChains类提供。
1.鼠标右击操作
from selenium import webdriver
# 引入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep driver=webdriver.Firefox()
driver.get("http://www.baidu.com")
#...... # 定位到要右击的元素
element=driver.find_element_by_css_selector("#kw") #右击操作
ActionChains(driver).context_click(element).perform()
#......
- from selenium.webdriver import ActionChains,导入提供鼠标操作的ActionChains类
- ActionChains(driver),调用ActionChains()类,将浏览器驱动driver作为参数传入
- context_click(element),context_click()方法用于模拟鼠标右键操作,在调用时需要制定元素定位
- perform(),执行所有ActionChains中存储的行为,可以理解成是对整个操作的提交动作
2.鼠标悬停
#......
# 定位到要悬停的元素
element=driver.find_element_by_css_selector("#kw")
#鼠标悬停
above=driver.find_element_by_css_selector(".pf")
ActionChains(driver).move_to_element(above).perform()
#......
3.鼠标双击操作
#......
# 定位到要双击的元素
element=driver.find_element_by_css_selector("#kw")
#双击操作
ActionChains(driver).double_click(element).perform()
#......
4.鼠标拖放操作
#......
# 定位元素的原位置
element=driver.find_element_by_id("xx")
# 定位元素要移动的目标位置
target==driver.find_element_by_id("xx")
# 执行元素的拖放操作
ActionChains(driver).drag_and_drop(element,target).perform()
#......
drag_and_drop(source,target)在源元素上按住鼠标左键,然后移动到目标元素上释放
- source:鼠标移动的源元素
- target:鼠标释放的目标元素
键盘事件
Keys()类提供了键盘上几乎所有按键的方法。
from selenium import webdriver
# 引入Key模块
from selenium.webdriver.common.keys import Keys
from time import sleep driver=webdriver.Firefox()
driver.get("http://www.baidu.com/") # 输入框输入内容
driver.find_element_by_css_selector("#kw").send_keys("pythonn") # 删除多输入的一个n
driver.find_element_by_css_selector("#kw").send_keys(Keys.BACK_SPACE) # 输入空格键+“教程”
driver.find_element_by_css_selector("#kw").send_keys(Keys.SPACE)
driver.find_element_by_css_selector("#kw").send_keys("教程") # ctrl+a全选输入框内容
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'a') # ctrl+c复制输入框内容
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'c') # ctrl+x剪切输入框内容
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'x') # ctrl+v粘贴内容到输入框
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'v') # 通过回车键代替单击操作
driver.find_element_by_css_selector("#su").send_keys(Keys.ENTER) driver.quit()
在使用键盘方法前需要先导入Keys类
以下为常用的键盘操作
| 代码 | 含义 |
| send_keys(Keys.BACK_SPACE) | 删除键(BackSpace) |
| send_keys(Keys.SPACE) | 空格键(Space) |
| send_keys(Keys.TAB) | 制表键(Tab) |
| send_keys(Keys.ESCAPE) | 回退键(Esc) |
| send_keys(Keys.eNTER) | 回车键(Enter) |
| send_keys(Keys.CONTROL,'a') | 全选(Ctrl+A) |
| send_keys(Keys.CONTROL,'c') | 复制(Ctrl+C) |
| send_keys(Keys.CONTROL,'x') | 剪切(Ctrl+X) |
| send_keys(Keys.CONTROL,'v') | 粘贴(Ctrl+(Ctrl+A)) |
| send_keys(Keys.F1) | 键盘F1 |
| ...... | |
| send_keys(Keys.F12) | 键盘F12 |
Python+selenium鼠标、键盘事件的更多相关文章
- Python - selenium_WebDriver 鼠标键盘事件
from selenium import webdriver #引入ActionChains类 提供了鼠标的操作方法 from selenium.webdriver.common.action_cha ...
- 自动化测试基础篇--Selenium鼠标键盘事件
摘自https://www.cnblogs.com/sanzangTst/p/7477382.html 前面几篇文章我们学习了怎么定位元素,同时通过实例也展示了怎么切换到iframe,怎么输入用户名和 ...
- Python+Selenium学习--键盘事件
场景 我们在实际的测试工作中,有时候需要使用tab键将焦点移动到下一个元素,用于验证元素的排序是否正确.webdriver的Keys()类提供键盘上所有的操作,甚至可以模拟一些组合键的操作,如Ctrl ...
- python selenium鼠标键盘操作(ActionChains)
用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件--ActionChains sele ...
- Python+selenium之键盘事件
keuys()类提供键盘上所有的按键方法.send_keys()方法可以用来模拟键盘输入. from selenium import webdriver from selenium.webdriver ...
- python selenium(键盘事件 Keys 类)
1.导入Keys类 from selenium.webdriver.common.keys import Keys Keys.BACK_SPACE 删除输入框内结尾的单个字符 Keys.SPACE ...
- Python——pyHook监听鼠标键盘事件
pyHook包为Windows中的全局鼠标和键盘事件提供回调. 底层C库报告的信息包括事件的时间,事件发生的窗口名称,事件的值,任何键盘修饰符等. 而正常工作需要pythoncom等操作系统的API的 ...
- Selenium4.0+Python3系列(四) - 常见元素操作(含鼠标键盘事件)
一.写在前面 上篇文章介绍的是关于浏览器的常见操作,接下来,我们将继续分享关于元素的常见操作,建议收藏.转发! 二.元素的状态 在操作元素之前,我们需要了解元素的常见状态. 1.常见元素状态判断,傻傻 ...
- Linux 模拟 鼠标 键盘 事件
/************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: ...
- Tkinter 鼠标键盘事件(一)
一: 鼠标事件 <Button-1> 鼠标左键单击 ...
随机推荐
- BFS 2015百度之星初赛2 HDOJ 5254 棋盘占领
题目传送门 /* BFS:先把1的入队,每个1和它相邻的组合后看看能不能使0变1,若有则添加入队,change函数返回改变了多少个0 注意:结果还要加上原来占领的 */ #include <cs ...
- 双拓扑排序 HDOJ 5098 Smart Software Installer
题目传送门 /* 双拓扑排序:抄的,以后来补 详细解释:http://blog.csdn.net/u012774187/article/details/40736995 */ #include < ...
- C. Arcade dp二维费用背包 + 滚动数组 玄学
http://codeforces.com/gym/101257/problem/C 询问从左上角走到右下角,每次只能向右或者向左,捡起三种物品算作一个logo,求最多能得到多少个logo. 设dp[ ...
- azkaban-web-start.sh启动时出现Table 'execution_flows' is marked as crashed and should be repaired Query错误的解决办法(图文详解)
问题详情 [hadoop@master bin]$ ./azkaban-web-start.sh Using Hadoop Using Hive from /home/hadoop/app/hive ...
- enum,sizeof,typedef
枚举类型的使用方法 enum是C语言中的一种自定义类型 enum值可以根据需要自定义整形值 第一个定义的enum值默认为0 默认情况下的enum值是在前一个定义值得基础上加1 enum类型的变量只能去 ...
- ArcGIS二次开发之读取遥感图像像素值的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 首先是读取遥感图像的R.G.B波段数据的做法.读取R.G.B波段数据的像素值主要通过IRaster接口的Read方法在 ...
- Android利用已有控件实现自定义控件
Android控件的基本介绍及使用自定义控件的意义 Android 本身提供了很多控件,自定义控件在android中被广泛运用,自定义控件给了我们很大的方便.比如说,一个视图为imag ...
- Hello Shell
shell是Linux平台的瑞士军刀,能够自动化完成很多工作.要了解UNIX 系统中可用的 Shell,可以使用 cat /etc/shells 命令.使用 chsh 命令 更改为所列出的任何 She ...
- 秦晓波著的编写高质量代码-改善Java程序的151个建议一书中的线程解释错误.
位置: 建议127: Lock与synchronized是不一样的 首先在概念上纠正这一篇内容: 援引Java源码中关于ReentrantLock的开篇说明: * A reentrant mutual ...
- Android手机app耗电量测试工具 - Gsam Battery Monitor
这段时间需要测试一个Android手机app的耗电量,在网上找了一个工具,Gsam Battery Monitor,觉得挺好用,和大家分享一下. 安装app后打开,可以看到主界面是这样的 点击一下上图 ...