python自动化测试(七):鼠标事件

news2025/4/6 2:05:30

前置条件:

本地部署:ECShop的版本是3.0.0、Google版本是

Google Chrome65.0.3325.162 (正式版本) (32 位) 

py的selenium版本是3.11.0

目录

一、前置代码

二、ActionChains类

三、鼠标事件

3.1 悬停事件

3.2 左键单击

3.3 其他事件

四、天猫练习-找回密码

4.1 天猫登录-忘记密码-拖动滑条

4.2 拖动元素


一、前置代码

# coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
dr = webdriver.Chrome()
url = "https://www.baidu.com"
dr.get(url)
dr.maximize_window()
dr.implicitly_wait(10)

二、ActionChains类

在Selenium中,ActionChains类用于执行一系列的鼠标和键盘操作。它可以将多个操作(例如点击、拖动、滚动等)组合成一个连续的操作序列,以便自动化测试或交互操作。

1.click-----单击鼠标左键
2.context_click-----点击鼠标右键
3.click_and_hold-----点击鼠标左键不松开
4.double_click-----双击鼠标左键
5.drag_and_drop-----拖拽某个元素到目标位置后松开
6.move_to_element-----鼠标移动到某个元素
7.release-----释放,即在某个元素位置松开鼠标左键
8.send_keys-----发送某个键到当前焦点的元素
9.key_down-----按下键盘上的某个键
10.key_up-----松开键盘上的某个键
11.perform()-----执行操作缓存队列中的所有动作
12.drag_and_drop_by_offset-----拖拽到某个坐标点后松开
13.move_by_offset-----鼠标从当前位置移动到某个坐标
14.move_to_element_by_offset-----移动到距某个元素(左上角坐标)多少距离的位置

方法参考 --> Actions(鼠标事件)方法列表-CSDN博客

三、鼠标事件

3.1 悬停事件

# 一、在百度首页的“更多”按钮上悬停
# 1.1 获取元素
ele = driver.find_element_by_name("tj_briicon")
# 1.2 实例ActionChains类,传入driver
action = ActionChains(driver)
# 1.3 鼠标悬停事件
action.move_to_element(ele)
# 1.4 执行函数perform(),提交动作
action.perform()

3.2 左键单击

# 一、在百度首页的“更多”按钮上左键单击
# 1.1 获取元素
ele = driver.find_element_by_name("tj_briicon")
# 1.2 实例ActionChains类,传入driver
action = ActionChains(driver)
# 1.3 鼠标单击
action.click(ele)
# 1.4 执行函数perform(),提交动作
action.perform()

3.3 其他事件

参考上方的操作方法

四、天猫练习-找回密码

4.1 天猫登录-忘记密码-拖动滑条

url = "https://tmall.com"
driver.get(url)
# 在天猫首页点击“请登录”
driver.find_element_by_link_text("请登录").click()
# 点击忘记密码
driver.find_element_by_link_text("忘记密码").click()
# 切换句柄
handles = driver.window_handles
print(handles)
driver.switch_to_window(handles[-1])

4.2 拖动元素

# 1、获取到滑动箭头
ele = driver.find_element_by_id("nc_1_n1z")
action = ActionChains(driver)
# 2、drag_and-drop_by_offset() 拖动到某个坐标后,松开
# 参数:
# 参数1:需要拖动的元素
# 参数2:向右拖动的距离,单位为px
# 参数3:向下拖动的距离,单位为px
action.drag_and_drop_by_offset(ele, 500, 0)
action.perform()

这里在谷歌浏览器上拖动后错误了,换其他浏览器是正常的

然后用个循环,就可以重复的去拖动了

for i in range(5):
    # 1、获取到滑动箭头
    ele = driver.find_element_by_id("nc_1_n1z")
    action = ActionChains(driver)
    # 2、滑动
    action.drag_and_drop_by_offset(ele, 500, 0)
    action.perform()
    time.sleep(1)
    # 3、滑动后出错,点击
    err = driver.find_element_by_id("`nc_1_refresh1`").click()
    time.sleep(1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1148529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.flink编码第一步(maven工程创建)

概述 万里第一步,要进行flink代码开发,第一步先整个 flink 代码工程 flink相关文章链接 flink官方文档 两种方式 一种命令行 mvn 创建,另一种直接在 idea 中创建一个工程,使用 mvn 的一些配置 mvn命令行创建 mvn 创建flink工程&…

基于SpringBoot的工厂车间管理系统设计与实现

目录 前言 一、技术栈 二、系统功能介绍 管理员功能实现 人员管理 看板信息管理 设备信息管理 生产开立管理 人员功能实现 生产开立管理 生产工序管理 生产流程管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 社会发展日新月异,用计…

springboot整合postgresql

使用docker安装postgres 简单起见,这里用docker来安装postgresql docker pull postgresdocker run --name postgres \-e POSTGRES_PASSWORD123456 \-p 5432:5432 \-v /usr/local/docker/postgresql/data:/var/lib/postgresql/data \-d postgrespostgres客户端 pg…

MAC缓解WebUI提示词反推

当前环境信息: 在mac上安装好stable diffusion后,能做图片生成了之后,遇到一些图片需要做提示词反推,这个时候需要下载一个插件,参考: https://gitcode.net/ranting8323/stable-diffusion-webui-wd14-tagg…

计算机毕业设计选题推荐-二手交易微信小程序/安卓APP-项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

qt-C++笔记之带有倒计数显示的按钮,计时期间按钮锁定

qt-C笔记之带有倒计数显示的按钮&#xff0c;计时期间按钮锁定 code review! 文章目录 qt-C笔记之带有倒计数显示的按钮&#xff0c;计时期间按钮锁定1.运行2.main.cc3.main.pro 1.运行 2.main.cc 代码 #include <QApplication> #include <QPushButton> #includ…

day02 矩阵 2023.10.26

1.矩阵 2.矩阵乘法 3.特殊矩阵 4.逆矩阵 5.正交矩阵 6.几何意义 7.齐次坐标 8.平移矩阵 9.旋转矩阵 10.缩放矩阵 11.复合运算

vue3 动态组件和异步组件

1.动态组件 <template><div><h1>组件切换</h1><component :is"currentComponent"></component><button click"toggleComponent">点击切换组件</button></div> </template><script setup …

搜狗百科创建步骤

搜狗百科属于微信生态里的平台&#xff0c;搜狗百科不仅在搜狗搜索中展示&#xff0c;且可以在微信搜索中展示。许多个人、企业和品牌都希望在搜狗百科上创建属于自己的词条&#xff0c;以提高知名度和品牌形象。那么搜狗百科该怎么创建呢&#xff1f;下面小马识途营销顾问分享…

虚拟机Ubuntu下运行vue-element-admin项目

一.环境搭建 1.安装nodejs sudo apt install nodejs 安装完成后&#xff0c;查看对应的版本号 nodejs -v没有问题&#xff0c;会输出对应版本号&#xff0c;我这里是10.19.0 v10.19.0 2.安装npm sudo apt install npm安装完成查看对应的版本号&#xff0c;确认OK npm -…

[云原生1. ] 使用Docker-compose一键部署Wordpress平台

文章目录 1. Docker-compose概述1.1 简介1.2 docker-compose 的三大概念1.3 docker-compose配置模板文件常用的字段1.4 docker-compose 常用命令及格式 2. YAML 文件的详细介绍及编写注意事项2.1 简介2.2 yaml的特性2.2.1 语法特点2.2.2 数据结构2.2.3 引号的区别2.2.4 内置类型…

nodejs+vue食力派网上订餐系统-计算机毕业设计

采用当前流行的B/S模式以及3层架构的设计思想通过 技术来开发此系统的目的是建立一个配合网络环境的食力派网上订餐系统&#xff0c;这样可以有效地解决食力派网上订餐管理信息混乱的局面。 本设计旨在提高顾客就餐效率、优化餐厅管理、提高订单准确性和客户的满意度。本系统采…

Kali安装docker

第一步&#xff1a;kali添加Docker官方的GPG密钥 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add 第二步&#xff1a;进入root更新源&#xff1a; su rootecho ‘deb https://download.docker.com/linux/debian stretch stable’> /etc/ap…

Harbor私有镜像仓库搭建

本文基于&#xff1a;https://zhuanlan.zhihu.com/p/143779176 1.环境准备 IP&#xff1a;192.168.10.136/24 操作系统:centos7 2.安装Docker、Docker-compose 2.1安装Docker-CE $ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.re…

50元买来的iPhone手机刷机经验

前段时间&#xff0c;家里的iPad被家人误操作&#xff0c;导致iPad变成不可使用状态。自己折腾了半天&#xff0c;没有找到解决办法。没有办法&#xff0c;只好拿到手机维修店去修理,很快就修理好了.其实也很简单--就是对iPad进行了刷机操作。当然我也看到了刷机的方法。今天&a…

C# 图解教程 第5版 —— 第13章 数组

文章目录 13.1 数组13.1.1 定义13.1.2 重要细节 13.2 数组的类型13.3 数组是对象13.4 一维数组和矩形数组13.5 实例化一维数组或矩形数组13.6 访问数组元素&#xff08;*&#xff09;13.7 初始化数组13.7.1 显示初始化一维数组13.7.2 显示初始化矩形数组13.7.3 初始化矩形数组的…

k8s集群升级

目录 1. 部署cri-docker &#xff08;所有集群节点&#xff09; 2. 升级master节点 3. 升级worker节点 4. 部署containerd 1. 部署cri-docker &#xff08;所有集群节点&#xff09; k8s从1.24版本开始移除了dockershim&#xff0c;所以需要安装cri-docker插件才能使用docker …

JWT详解解读读

&#x1f4d1;前言 本文主要是jwt解读文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日一句&#xff1a;努力一点&#…

计算机毕业设计选题推荐-跑腿平台微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

【Java】HashSet集合用法

目录 HashSet 集合特点 示例代码 手写HashSet集合 HashSet 没有Get() HashSet 集合特点 HashSet 基于HashMap 来实现的&#xff0c;是一个不允许有重复元素的集合HashSet 允许有 null 值HashSet 是无序的&#xff0c;即不会记录插入的顺序HashSet集合实现了Set接口HashSet …