Python+Selenium笔记(十四)鼠标与键盘事件

 (一) 前言

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:键盘的输入值

(三) 示例(键盘事件)

 1 from selenium.webdriver.common.action_chains import ActionChains
 2 from selenium import webdriver
 3 from selenium.webdriver.common.keys import Keys
 4
 5 driver = webdriver.Chrome()
 6 driver.implicitly_wait(20)
 7 driver.maximize_window()
 8 driver.get(‘https://www.cnblogs.com/‘)
 9 #找找看搜索框
10 search_file = driver.find_element_by_css_selector(‘#zzk_q‘)
11 #谷歌搜索框
12 search_file_gg = driver.find_element_by_css_selector(‘#google_search_q‘)
13
14 search_file.send_keys(‘测试‘)
15 #ctrl+a
16 ActionChains(driver).key_down(Keys.CONTROL).send_keys(‘a‘).key_up(Keys.CONTROL).perform()
17 #ctrl+c
18 ActionChains(driver).key_down(Keys.CONTROL).send_keys(‘c‘).key_up(Keys.CONTROL).perform()
19 ##ctrl+v
20 ActionChains(driver).key_down(Keys.CONTROL).send_keys_to_element(search_file_gg,‘v‘).perform()
21 #ctrl+a
22 ActionChains(driver).key_down(Keys.CONTROL).send_keys(‘a‘).key_up(Keys.CONTROL).perform()
23 #ctrl+x
24 ActionChains(driver).key_down(Keys.CONTROL).send_keys(‘x‘).key_up(Keys.CONTROL).perform()
25 #ctrl+v
26 ActionChains(driver).key_down(Keys.CONTROL).send_keys_to_element(search_file,‘v‘).key_up(Keys.CONTROL).perform()
27 #回车
28 ActionChains(driver).send_keys(Keys.ENTER).perform()
29
30 driver.quit()

(四) 示例(鼠标事件)

 1 from selenium.webdriver.common.action_chains import ActionChains
 2 from selenium import webdriver
 3
 4 driver = webdriver.Chrome()
 5 driver.implicitly_wait(20)
 6 driver.maximize_window()
 7 driver.get(‘https://www.cnblogs.com/‘)
 8 #编程语言
 9 program_lan = driver.find_element_by_xpath(‘//li[@id="cate_item_2"]/a‘)
10 #编程语言下的小类Python
11 program_py = driver.find_element_by_xpath(‘//li/a[@href="/cate/python/"]‘)
12 #鼠标先移动到“编程语言”上,然后点击Python
13 ActionChains(driver).move_to_element(program_lan).click(program_py).perform()
14
15 driver.quit()

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

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

原文地址:https://www.cnblogs.com/simple-free/p/8527246.html

时间: 2024-11-02 23:15:56

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

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

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

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

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

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

转自:http://www.ithov.com/linux/133271.shtml 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类.

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

参考资料:https://blog.csdn.net/zh175578809/article/details/76767748 参考资料2:https://blog.csdn.net/qq_41817302/article/details/79618654 selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入from selenium.webdriver.common.keys import Keys即可,然后就可以来模拟键盘操作. #导入Keys 模块,然后我们看看

Selenium(一)鼠标和键盘事件

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

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

(一) Test Suite测试套件 一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行. 应用unittest的TestSuites特性,可以将不同的测试组成一个逻辑组,然后设置统一的测试套件,并通过一个命令来执行测试.这都是通过TestSuites.TestLoader和TestRunn类来实现的. (二) 类级别的setUp()方法和tearDown()方法 使用setUpClass()方法和tearDownClass

python学习笔记(十四) - easy_install安装与使用

一. 背景知识 在使用python的时候,经常会使用到本身没有安装的第三方模块,这时我们就需要使用easy_install 二. 使用方法 1. 下载easy_setup.py的源代码:http://pypi.python.org/pypi/setuptools 2. 用记事本存放源码并命令为easy_setup.py 3. 双击运行或在命令行运行:python easy_setup.py 4. 在python的安装目录python\scripts目录中可以看到有好几个easy_install的

python学习笔记(十四): unittest

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 在说unittest之前,先说几个概念: TestCase 也就是测试用例 TestSuite 多个测试用例集合在一起,就是TestSuite TestLoader是用来加载TestCase到TestSuite中的 TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信

python学习笔记十——异常处理

1.try: command except 错误类型,记录错误信息变量: command finally: command try...finally的用处是无论是否发生异常都要确保资源释放代码的执行.一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程.如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理.如下从几个细节讨论finally的特性. 1).try中的return: 当在try语句块中含有return语句

Python进阶(三十四)-Python3多线程解读

Python进阶(三十四)-Python3多线程解读 线程讲解 ??多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度. 程序的运行速度可能加快. 在一些等待的任务实现上如用户输入.文件读写和网络收发数据等,线程就比较有用了.在这种情况下我们可以释放一些珍贵的资源如内存占用等等. ??线程在执行过程中与进程还是有区别的.每个独立