(一) 前言

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. 215. 数组中的第K个最大元素

    在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2输出: 5示 ...

  2. JavaScript中十种一步拷贝数组的方法

    JavaScript中我们经常会遇到拷贝数组的场景,但是都有哪些方式能够来实现呢,我们不妨来梳理一下. 1.扩展运算符(浅拷贝) 自从ES6出现以来,这已经成为最流行的方法.它是一个很简单的语法,但是 ...

  3. drools 的一个小demo

    直接上代码: 第一步,maven引入相关包 <?xml version="1.0" encoding="UTF-8"?> <project x ...

  4. 【IT笔试面试题整理】反转链表

    [试题描述]定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点 [参考代码] 方法一: public static Link reverseLinkList(Link head) ...

  5. AngularJS学习笔记(四)内置指令

    说说指令 不得不赞叹,指令是ng最为强大的功能之一,好吧,也可以去掉之一,是最强大的功能.ng内置了许多自定义的指令,这避免了我们自己去造轮子.同时,ng也提供了自定义指令的功能,可以让我们的页面元素 ...

  6. 使用 ajax 异步调用数据

    ajax 脚本 <script type="text/javascript" > function show(page) { var xmlhttp; try { xm ...

  7. CSS 样式属性

    大小 width   宽               body {   min-width:1200px; height  高                      }               ...

  8. EWS 流通知订阅邮件

    摘要 查找一些关于流通知订阅邮件的资料,这里整理一下. 核心代码块 using System; using System.Collections.Generic; using System.Linq; ...

  9. (第一篇) 一步一步带你了解linq to Object

    要想学好linq to object 我们必须要先学习lambda 表达式,学习lambda 表达式呢我们必须了解匿名函数和匿名类及扩展方法,学习匿名函数,我们必须学会委托,这是本文的宗旨.下面开始第 ...

  10. SQL 通配符的使用?三种

    SQL 通配符 通配符可用于替代字符串中的任何其他字符. SQL 通配符 在 SQL 中,通配符与 SQL LIKE 操作符一起使用. SQL 通配符用于搜索表中的数据. 在 SQL 中,可使用以下通 ...