(一) 前言

Webdriver高级应用的API,允许我们模拟简单到复杂的键盘和鼠标事件,如拖拽操作、快捷键组合、长按以及鼠标右键操作,都是通过使用webdriver的Python API 中的ActionChains类实现的。

调用ActionChains类方法时,不会立即执行,而是将所有操作都存放在一个队列里,当调用perform()方法时,队列里的操作会依次执行

(二) 与键盘和鼠标事件有关的一些重要的方法

方法

简单说明

click(on_element=None)

单击元素

on_element:指被点击的元素,如果该参数为none,将单击当前鼠标所在位置

click_and_hold(on_element=None)

对元素按住鼠标左键

on_element:指要按住鼠标左键的元素,如果该参数为none,将单击当前鼠标所在位置。

double_click(on_element=None)

双击元素

on_element:只要双击的元素,如果该参数为none,将单击当前鼠标所在位置

drag_and_drop(source, target)

鼠标拖动

Source:鼠标拖动的元素

Target:鼠标释放的目标元素

key_down(value, element=None)

按住某个键,而不释放,用于修饰键(ctrl、alt和shift)

Vakue:指要按住的键,值在Keys类中定义

element:指按键触发的目标元素,如果为none,则在当前焦点位置触发。

key_up(value, element=None)

释放修饰键

Vakue:指要按住的键,值在Keys类中定义

element:指按键触发的目标元素,如果为none,则在当前焦点位置触发。

move_to_element(to_element)

将鼠标移到指定元素的中央

to_element:指定元素

perform()

提交已保存的操作

release(on_element=None)

释放鼠标

on_element:被鼠标释放的元素

send_keys(keys_to_send)

对当前焦点元素的键盘操作

keys_to_send:键盘的输入值

send_keys_to_element(element, keys_to_send)

对指定元素的键盘操作

element:指定元素

keys_to_send:键盘的输入值

(三) 示例(键盘事件)

 from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome()
driver.implicitly_wait(20)
driver.maximize_window()
driver.get('https://www.cnblogs.com/')
#找找看搜索框
search_file = driver.find_element_by_css_selector('#zzk_q')
#谷歌搜索框
search_file_gg = driver.find_element_by_css_selector('#google_search_q') search_file.send_keys('测试')
#ctrl+a
ActionChains(driver).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
#ctrl+c
ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
##ctrl+v
ActionChains(driver).key_down(Keys.CONTROL).send_keys_to_element(search_file_gg,'v').perform()
#ctrl+a
ActionChains(driver).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
#ctrl+x
ActionChains(driver).key_down(Keys.CONTROL).send_keys('x').key_up(Keys.CONTROL).perform()
#ctrl+v
ActionChains(driver).key_down(Keys.CONTROL).send_keys_to_element(search_file,'v').key_up(Keys.CONTROL).perform()
#回车
ActionChains(driver).send_keys(Keys.ENTER).perform() driver.quit()

(四) 示例(鼠标事件)

 from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver driver = webdriver.Chrome()
driver.implicitly_wait(20)
driver.maximize_window()
driver.get('https://www.cnblogs.com/')
#编程语言
program_lan = driver.find_element_by_xpath('//li[@id="cate_item_2"]/a')
#编程语言下的小类Python
program_py = driver.find_element_by_xpath('//li/a[@href="/cate/python/"]')
#鼠标先移动到“编程语言”上,然后点击Python
ActionChains(driver).move_to_element(program_lan).click(program_py).perform() driver.quit()

(五) 查看Python selenium API的说明文档

点击下面的这个(或者也可以通过命令启动python -m pydoc -p 3333 ,-p指端口号(自定义一个)),然后在浏览器登录后(http://localhost:3333/),输入selenium进行查询

Python+Selenium笔记(十四)鼠标与键盘事件的更多相关文章

  1. python 学习笔记十四 jQuery案例详解(进阶篇)

    1.选择器和筛选器 案例1 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  2. Selenium:浏览器及鼠标、键盘事件

    参考文档:WebDriver官方文档,下载链接:http://download.csdn.net/detail/kwgkwg001/4004500 虫师:<selenium2自动化测试实战-基于 ...

  3. Selenium WebDriver中一些鼠标和键盘事件的使用

    转自:http://www.ithov.com/linux/133271.shtml 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击 ...

  4. 转:总结Selenium WebDriver中一些鼠标和键盘事件的使用

    在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...

  5. 总结Selenium WebDriver中一些鼠标和键盘事件的使用

    在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...

  6. (转)python selenium-webdriver 元素操作之鼠标和键盘事件

    参考资料:https://blog.csdn.net/zh175578809/article/details/76767748 参考资料2:https://blog.csdn.net/qq_41817 ...

  7. Selenium(五)鼠标和键盘事件

    1.模拟鼠标找到大分类下的子分类.以网易严选为例. 如果直接找到  坚果炒货 这个元素,然后点击它来实现跳转,是会报错的. 模拟鼠标停留--点击行为:  页面已成功跳转 2.键盘事件 模拟搜索操作: ...

  8. Python+Selenium笔记(四):unittest的Test Suite(测试套件)

    (一) Test Suite测试套件 一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行. 应用unittest的TestSui ...

  9. python学习笔记(十 四)、web.py

    使用web.py 通过python进行网页的编写,下面我们来简单了解一哈web.py 的使用 1 url处理 使用特定的url结构来解析我们发送的请求.如下面所示: urls = ( '/login' ...

  10. python学习笔记十四:wxPython Demo

    一.简介 wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的.功能键全的GUI用户界面. wxPython是作为优秀的跨平台GUI库wxWidgets ...

随机推荐

  1. Decorator装饰者模式(结构型模式)

    1.需求 假设让我们去设计FCL中的Stream类,该类具有流类的基本功能,除了有各种不同类型的流外(如内存流.文件流.网络流等等),但是在不同的业务场景下,如处理银行业务,需要给相关的内存流进行加密 ...

  2. redis的高级事务CAS(乐观锁)

    Optimistic locking using check-and-set(乐观锁) 乐观锁介绍:watch指令在redis事物中提供了CAS的行为.为了检测被watch的keys在是否有多个cli ...

  3. Windows下的Jdk 1.8*安装并配置(图文详解)

    不多说,直接上干货! 简单说下,jdk1.8*的下载,见http://www.cnblogs.com/zlslch/p/5658383.html 双击jdk-8u60-windows-x64.exe运 ...

  4. 转:Intellij idea Version Control File Status Colors ( 版本控制文件状态颜色 )

    https://blog.csdn.net/Bruce_Lee__/article/details/80261308 Added —— 添加 Added in not active changelis ...

  5. SQL Server 笔记

    第一章数据库的基本操作: >创建数据库: create database my_db(逻辑名称) on primary ( name='my_db.mdf',(物理名称) filename='F ...

  6. Python模块: 命令行解析optionparser

    Python 有两个内建的模块用于处理命令行参数:一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数:另一个是 optparse,它功能强大,而 ...

  7. 带你了解CSRF和XSS(二)

    什么是CSRF? CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XS ...

  8. 并发编程——ConcurrentHashMap#addCount() 分析

    前言 ConcurrentHashMap 精华代码很多,前面分析了 helpTransfer 和 transfer 和 putVal 方法,今天来分析一下 addCount 方法,该方法会在 putV ...

  9. WPF备忘录(5)怎样修改模板中的控件

    首先,想问大家一个问题,你们如果要给一个Button添加背景图片会怎么做?(呵呵,这个问题又点小白哈) 是这样吗? <Button Height="57" Horizonta ...

  10. Direct2D教程I——简介及首个例子

    在博客园里,系统的Direct2D的教程比较少,只有“万一”写了一个关于Direct2D的系列(Delphi 2009).于是,仿照其系列,写一个在VS下的Direct2D系列教程. 博客园中的高手还 ...