在web自动化中,我们可能会遇到需要通过键盘或者鼠标去操作某些元素,那么我们就需要用到键盘事件和鼠标事件了,今天对键盘和鼠标操作进行一个总结

鼠标事件

  鼠标事件需要引入ActionChains类,查看源码可以看到ActionChains初始化需要传递的是当前会话

  

鼠标操作的步骤:

  1、储存鼠标操作

  2、执行操作,利用perform()方法执行操作

常用的鼠标操作有:

  move_to_element     悬浮

  drag_and_drop         拖拽操作

  double_click              双击

  context_click             右击

具体需要什么,可以查看源码,很丰富,很详细哈。。。

举个栗子:

  百度首页--高级搜索

示例代码:

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains dr = webdriver.Chrome()
dr.get("http://www.baidu.com")
col = (By.XPATH, '//div[@id="u1"]//a[@class="pf"]') # 设置的元素定位
WebDriverWait(dr, 10, 0.5).until(EC.visibility_of_element_located(col)) # 显性等待设置按钮元素存在
el = dr.find_element(*col)
ActionChains(dr).move_to_element(el).perform() # 鼠标悬浮至设置按钮
co = (By.XPATH, '//a[text()="高级搜索"]')
WebDriverWait(dr, 10, 0.5).until(EC.visibility_of_element_located(co))
dr.find_element(*co).click() # 点击高级搜索

键盘事件

  键盘事件我们一般很少用,还是总结下吧

键盘事件主要是引用Keys这个类

组合键:

  send_keys(Keys.CONTROL,'a')        全选

  send_keys(Keys.CONTROL,'c')        复制

  send_keys(Keys.CONTROL,'v')   粘贴

  send_keys(Keys.CONTROL,'x')   剪切

非组合键:

  回车: Keys.ENTER

  删除:Keys.BACK_SPACE

  空格:Keys.SPACE

  制表:Keys.TAB

  刷新:Keys.F5

举个栗子

  百度首页用回车键代替搜索按钮

from selenium import webdriver
from selenium.webdriver.common.keys import Keys dr = webdriver.Chrome()
dr.get("http://www.baidu.com")
dr.implicitly_wait(3)
dr.find_element(By.ID, "kw").send_keys("腾讯", Keys.ENTER)

以上就是总结的键盘、鼠标事件

soeasy的键盘鼠标事件的更多相关文章

  1. Android查询:模拟键盘鼠标事件(adb shell 实现)

    1. 发送键盘事件: 命令格式1:adb shell input keyevent “value” 其中value以及对应的key code如下表所列: KeyEvent Value KEYCODE ...

  2. 【pyHook】 监测键盘鼠标事件等

    [pyHook] pyHook是一个用来进行键盘.鼠标等层面事件监控的库.这个库的正常工作需要pythoncom等操作系统的API的支持.首先来说说如何安装. 直接pip install pyHook ...

  3. 【JS】键盘鼠标事件

    一,键盘 keydown 表示按下键盘 keypress 表示按下键盘 keyup 表示键盘弹起 这三者的区别分别表现在发生的 先后顺序,获取到的键盘按钮值,已经对输入框的文本取值这三方面 先后顺序: ...

  4. (转)C#模拟键盘鼠标事件

    原文 1.模拟键盘事件System.Windows.Forms.SendKeys以下是   SendKeys   的一些特殊键代码表.     键   代码       BACKSPACE   {BA ...

  5. linux 处理键盘 鼠标事件

    Linux下鼠标和键盘的模拟控制,也就是为手势和语音控制鼠标和键盘部分服务的. 有关于本系统构建的文章结构都会由三个部分来组织,一是该功能模块的介绍和在Linux下简单应用程序的实现:二是将该功能模块 ...

  6. C#模拟键盘鼠标事件 SendKeys 的特殊键代码表(转)

    使用 SendKeys 将键击和组合键击发送到活动应用程序.此类无法实例化.若要发送一个键击给某个类并立即继续程序流,请使用 Send.若要等待键击启动的任何进程,请使用 SendWait. 每个键都 ...

  7. winform中键盘和鼠标事件的捕捉和重写(转)

    在 编写winform应用程序时,有时需要无论在哪个控件获取焦点时,对某一个键盘输入或者鼠标事件都进行同样的操作.比如编写一个处理图片的应用程序时, 希望无论当前哪个控件获得焦点,当用户按上.下.左. ...

  8. Selenium2+python自动化12-操作元素(键盘和鼠标事件)

    前言 在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...

  9. lufylegend库 鼠标事件 循环事件 键盘事件

    lufylegend库 鼠标事件 循环事件 键盘事件 <!DOCTYPE html> <html lang="en"> <head> <m ...

随机推荐

  1. Linux上zookeeper+dubbo-admin的安装及使用

    空linux安装,需要先安装JDK,mysql,tomcat等 一. dubbo-admin依赖外置tomcat. tomcat依赖JDK. 首先要安装JDK,tomcat,顺便安装mysql 安装J ...

  2. NLP之CRF应用篇(序列标注任务)

    1.CRF++的详细解析 完成的是学习和解码的过程:训练即为学习的过程,预测即为解码的过程. 模板的解析: 具体参考hanlp提供的: http://www.hankcs.com/nlp/the-cr ...

  3. [LeetCode] 890. Find and Replace Pattern 查找和替换模式

    You have a list of words and a pattern, and you want to know which words in words matches the patter ...

  4. [LeetCode] 76. Minimum Window Substring 最小窗口子串

    Given a string S and a string T, find the minimum window in S which will contain all the characters ...

  5. 关于指针与引用的差别——C++

    准备 https://zhuanlan.zhihu.com/p/27974028 开始 int   是int类型变量声明 int * 是int指针声明,指针其实就是地址变量,用来储存地址值的" ...

  6. LeetCode 220. Contains Duplicate III (分桶法)

    Given an array of integers, find out whether there are two distinct indices i and j in the array suc ...

  7. RDS for MySQL权限问题(错误代码:1227,1725)

    https://help.aliyun.com/knowledge_detail/41701.html 错误信息   [Err] 1227 - Access denied; you need (at ...

  8. 【layui】【laydate】设置可以选择相同的年份范围

    1.效果: 2.解决方法: 修改laydate.js源码 全局查询T.prototype.setBtnStatus这个只有一个,就是点击控件时调用的事件,里面添加下面代码 if( this.confi ...

  9. apache poi操作office文档----java在线预览txt、word、ppt、execel,pdf代码

    在页面上显示各种文档中的内容.在servlet中的逻辑 word: BufferedInputStream bis = null;  URL url = null;  HttpURLConnectio ...

  10. javascript的对象与字符串相互转换

    因为对象不利于网络传输,因此要转换成字符串,转换成字符串之后又要考虑怎么将这个字符串转换回对象,以便取得对象中的属性. 常用的做法是将对象转换为JSON字符串,这里的转换方法也是用的JSON官方提供的 ...