【基于Python的Selenium2自动化测试】06 - 模拟鼠标操作

2024-08-24 08:58

本文主要是介绍【基于Python的Selenium2自动化测试】06 - 模拟鼠标操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在之前的文章中,我们已经接触到了几个鼠标、键盘的简单操作了,如下:

  • 点击(鼠标左键)页面按钮:click()
  • 清空输入框:clear()
  • 输入字符串:send_keys()

当然,对于鼠标事件中,我们熟悉的还有:右击、双击、悬停、拖动 等功能。在WebDriver中,是将这些关于鼠标操作的方法封装在ActionChains类中了。

ActionChains类提供了以下鼠标相关操作方法:

  • perform(): 执行所有ActionChains中存储的行为
  • context_click():右击
  • double_click():双击
  • drag_and_drop(source, target):将source移动到target
  • move_to_element():悬停
  • submit():提交表单(一般用于模拟 回车键)

注意: 操作鼠标时,首先需要先导入模块:from selenium.webdriver.common.action_chains import ActionChains,然后使用perform()方法执行ActionChains中的行为。

这里我们模拟一下鼠标悬停的操作方法。

以 慕课网 为例,先登录进去慕课网,然后将塑标悬停在个人头像的位置:

【代码】

# coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains  #鼠标操作需引入ActionChains类
import timedriver = webdriver.Firefox()
driver.get("https://coding.imooc.com/")   # 打开慕课网# ====== 定位到帐号密码登录按钮
driver.find_element_by_id("js-signin-btn").click()
time.sleep(5)# ===== 定位到帐号密码登录框
username = driver.find_element_by_name("email")
username.clear()
username.send_keys("useName_XXXX")
password = driver.find_element_by_name("password")
password.clear()
password.send_keys("passWord_XXXX")
driver.find_element_by_xpath("//div[@id='signin']/div[2]/div/form/div[5]").click()
time.sleep(5)# #定位到要悬停的元素(个人头像)
target = driver.find_element_by_xpath("//div[@id='login-area']/ul/li[2]/a/img")
ActionChains(driver).move_to_element(target).perform()
time.sleep(8)driver.quit()

运行结果如下:
在这里插入图片描述

这篇关于【基于Python的Selenium2自动化测试】06 - 模拟鼠标操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102030

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名

usaco 1.2 Transformations(模拟)

我的做法就是一个一个情况枚举出来 注意计算公式: ( 变换后的矩阵记为C) 顺时针旋转90°:C[i] [j]=A[n-j-1] [i] (旋转180°和270° 可以多转几个九十度来推) 对称:C[i] [n-j-1]=A[i] [j] 代码有点长 。。。 /*ID: who jayLANG: C++TASK: transform*/#include<

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测