鼠标操作
现在的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_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的 …
Linux 模拟 鼠标 键盘 事件
/************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: …
Tkinter 鼠标键盘事件(一)
一: 鼠标事件 鼠标左键单击 …
随机推荐
Spring MVC 框架的架包分析,功能作用,优点
由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j …
转行IT行业的心路历程3
16年丝袜生意很差的一年,老板的态度也不好,大唐本地人太歧视外地人了.而且我干的不开心没有前途,不能体现自我价值,无论你怎么努力. IT技术行业却不是这样,只要你努力肯学习,一定会有回报的. 在16/ …
[转].net中的认证(authentication)与授权(authorization)
本文转自:http://www.cnblogs.com/yjmyzz/archive/2010/08/29/1812038.html 注:这篇文章主要给新手看的,老手们可能会觉得没啥营养,就请绕过吧. …
Codeforces Round #259 (Div. 2)AB
链接:http://codeforces.com/contest/454/problem/A A. Little Pony and Crystal Mine time limit per test 1 …
access_token的获取2
概述 access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存. access_token的存储至少要保留512个字符空间.acces …
GNU自动补全模块readline解析
readline模块定义了一系列函数用来读写Python解释器中历史命令,并提供自动补全命令功能.这个模块可以通过relcompleter模块直接调用,模块中的设置会影响解释器中的交互提示,以及内置函 …
rabbitMQ说明文档
rabbitMQ是什么 RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开 …
SQL Server 2005的服务器角色(public)的问题
SQL Server 默认会有9个服务器角色,而且这些角色是不能删除和新增.修改的.关于这些角色相关介绍和权限,请参考 其中有一个特殊的角色public,任何登录都会属于该角色,它只拥有的权限是VIE …
EBS应收(AR)模块常用表
select * from ar_batches_all 事务处理批 select * from ra_customer_trx_all INVOICE头 select * from ra_cu …
[转]jQuery中clone和clone(true)的区别
jquery中clone() 和 clone(true)的区别. jquery复制 DOM的时候,原来还可以连 dom上面绑定的事件一起复制. 原文: https://www.cnblogs.com/ …