博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python+selenium鼠标、键盘事件
阅读量:5253 次
发布时间:2019-06-14

本文共 2674 字,大约阅读时间需要 8 分钟。

鼠标操作

现在的Web产品提供了丰富的鼠标交互方式,例如鼠标右击、双击、悬停、甚至是鼠标拖动等功能,在Webdriver中,将这些关于鼠标操作的方法封装在ActionChains类提供。

1.鼠标右击操作

from selenium import webdriver# 引入ActionChains类from selenium.webdriver.common.action_chains import ActionChainsfrom time import sleepdriver=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 Keysfrom time import sleepdriver=webdriver.Firefox()driver.get("http://www.baidu.com/")# 输入框输入内容driver.find_element_by_css_selector("#kw").send_keys("pythonn")# 删除多输入的一个ndriver.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

转载于:https://www.cnblogs.com/NancyRM/p/8136388.html

你可能感兴趣的文章
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
Java基础教程——网络基础知识
查看>>
Kruskal基础最小生成树
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
What's New for Visual C# 6.0
查看>>
ExtJs学习笔记之ComboBox组件
查看>>
关于收费软件
查看>>
javascript之Style物
查看>>
图的深度优先遍历
查看>>
C# 之 提高WebService性能大数据量网络传输处理
查看>>
[bzoj1004] [HNOI2008] Cards
查看>>
原生HttpClient详细使用示例
查看>>
几道面试题
查看>>
Factory Design Pattern
查看>>
python中贪婪与非贪婪
查看>>
guava API整理
查看>>
jquery mobile
查看>>