selenium+python自动化测试之鼠标和键盘事件

作者:zh175578809 时间:2022-10-28 03:32:25 

前面的例子中,点击事件都是通过click()方法实现鼠标的点击事件。其实在WebDriver中,提供了许多鼠标操作的方法,这些操作方法都封装在ActionChains类中,包括鼠标右击、双击、悬停和鼠标拖动等功能。

ActionChains类提供的鼠标操作事件

  • context_click():点击鼠标右键

  • double_click():双击鼠标

  • drag_and_drop():拖动鼠标

  • move_to_element():鼠标悬停

鼠标悬停

页面上有些下拉菜单,在鼠标放到元素上以后,下面的菜单才会显示出来。下面的图片就是一个例子

selenium+python自动化测试之鼠标和键盘事件

百度首页上的设置项,下面的菜单默认不会显示,将鼠标停在上面后才会显示,这就是鼠标的悬停操作,菜单显示以后就可以对下面的项进行点击操作

进入搜索设置的代码


# -*- coding: utf-8 -*-

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
time.sleep(3)

settings = driver.find_element_by_link_text('设置')
webdriver.ActionChains(driver).move_to_element(settings).perform()

time.sleep(1)

settings_search = driver.find_element_by_class_name('setpref')
settings_search.click()

time.sleep(3)
driver.close()

打开页面后,根据链接的文本信息找到设置项,使用ActionChains的move_to_element()方法将鼠标悬停在设置上,然后找到搜索设置项

鼠标的右击、双击和拖动事件都是通过上述的方法调用,只要将方法替换一下就可以了。拖动事件需要传入两个参数,第一个参数是拖动的起点元素,第二个参数是终点元素


webdriver.ActionChains(driver).context_click("右击的元素定位").perform() #右击事件
webdriver.ActionChains(driver).double_click("双击的元素定位").perform() #双击事件
webdriver.ActionChains(driver).drag_and_drop("拖动的起点元素", "拖动的终点元素").perform() #拖动事件

键盘事件

Keys类中提供了几乎所有的键盘事件,在鼠标事件中用到了两个键盘事件,键盘的向下按键(send_keys(Keys.DOWN))和键盘的回车事件(send_keys(Keys.ENTER))。键盘的事件需要导入Keys模块


from selenium.webdriver.common.keys import Keys

所有的键盘事件都包含在这个模块中,send_keys用来模拟键盘输入,除此之外,还可以用例模拟键盘上的按键,不仅支持单个的键盘按键,还支持组合按键输入


# -*- coding: utf-8 -*-

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
time.sleep(3)

driver.find_element_by_id('kw').send_keys('selenium') #在搜索框中输入"selenium"
driver.find_element_by_id('kw').send_keys(Keys.SPACE) #输入空格键
driver.find_element_by_id('kw').send_keys('python') #在搜索框中输入"python"
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a') #输入Control+a模拟全选
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'c') #输入Control+c模拟复制
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v') #输入Control+v模拟粘贴
driver.find_element_by_id('kw').send_keys(Keys.ENTER) #输入回车代替点击搜索按钮

time.sleep(3)
driver.close()

下面是一些常用的键盘事件:

– Keys.BACK_SPACE:回退键(BackSpace)
– Keys.TAB:制表键(Tab)
– Keys.ENTER:回车键(Enter)
– Keys.SHIFT:大小写转换键(Shift)
– Keys.CONTROL:Control键(Ctrl)
– Keys.ALT:ALT键(Alt)
– Keys.ESCAPE:返回键(Esc)
– Keys.SPACE:空格键(Space)
– Keys.PAGE_UP:翻页键上(Page Up)
– Keys.PAGE_DOWN:翻页键下(Page Down)
– Keys.END:行尾键(End)
– Keys.HOME:行首键(Home)
– Keys.LEFT:方向键左(Left)
– Keys.UP:方向键上(Up)
– Keys.RIGHT:方向键右(Right)
– Keys.DOWN:方向键下(Down)
– Keys.INSERT:插入键(Insert)
– DELETE:删除键(Delete)
– NUMPAD0 ~ NUMPAD9:数字键1-9
– F1 ~ F12:F1 - F12键
– (Keys.CONTROL, ‘a'):组合键Control+a,全选
– (Keys.CONTROL, ‘c'):组合键Control+c,复制
– (Keys.CONTROL, ‘x'):组合键Control+x,剪切
– (Keys.CONTROL, ‘v'):组合键Control+v,粘贴

来源:https://blog.csdn.net/zh175578809/article/details/76767748

标签:selenium,python,鼠标,键盘
0
投稿

猜你喜欢

  • Python Logging 日志记录入门学习

    2022-05-17 14:48:39
  • tensorflow 动态获取 BatchSzie 的大小实例

    2023-03-05 16:56:48
  • js实现rem自动匹配计算font-size的示例

    2023-08-22 11:02:33
  • 公网远程访问局域网SQL Server数据库

    2024-01-22 01:38:21
  • mysql数据库优化必会的几个参数中文解释

    2024-01-17 09:19:52
  • Linux(Redhat)安装python3.6虚拟环境(推荐)

    2022-06-08 23:34:13
  • 在ASP.NET 2.0中操作数据之五十五:编辑和删除现有的二进制数据

    2023-07-10 02:05:43
  • [译]如何设计网页小广告(banner)

    2009-10-16 20:40:00
  • 在Oracle 8x实现自动断开后再连接

    2010-07-26 13:03:00
  • 解决numpy矩阵相减出现的负值自动转正值的问题

    2021-10-07 19:49:16
  • Java+MySql图片数据保存与读取的具体实例

    2024-01-22 01:07:31
  • 详解Python查找谁删了你的微信

    2021-01-02 02:32:02
  • HTML5 第二份草案发布

    2008-06-17 17:42:00
  • golang 字符串比较是否相等的方法示例

    2024-02-05 14:45:07
  • javascript 屏蔽鼠标键盘的几段代码

    2024-04-30 09:51:19
  • 对Python3中dict.keys()转换成list类型的方法详解

    2021-02-13 12:18:26
  • 浅谈Python浅拷贝、深拷贝及引用机制

    2023-01-03 10:28:23
  • css中使用CLASS来设计网页布局

    2007-10-30 13:01:00
  • Python排序搜索基本算法之冒泡排序实例分析

    2023-10-18 19:27:26
  • MySQL基础教程之IN的用法详解

    2024-01-16 19:36:32
  • asp之家 网络编程 m.aspxhome.com