Selenium Web自动化测试 —— 高级控件交互方法!

news2024/10/6 10:42:27

一、使用场景

使用场景对应事件
复制粘贴键盘事件
拖动元素到某个位置鼠标事件
鼠标悬停鼠标事件
滚动到某个元素滚动事件
使用触控笔点击触控笔事件(了解即可)
  • https://www.selenium.dev/documentation/webdriver/actions_api

二、ActionChains解析

  • 实例化类ActionChains,参数为driver实例。
  • 中间可以有多个操作。
  • .perform()代表确定执行。
ActionChains(self.driver).操作.perform()
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

三、键盘事件

  • 按下、释放键盘键位
  • 结合send_keys回车

3.1、键盘事件——使用shift键实现大写

  • mouse = ActionChains(self.driver):实例化ActionChains类
  • mouse.key_dowm(keys.SHIFT,ele):按下SHIFT键
  • mouse.send_keys(“selenium”):输入字母自动变成大写
  • mouse.perform()

3.2、键盘事件——输入后回车

  • 方法1:.send_keys(Keys.ENTER)
  • 方法2:ActionChains().send_keys(Keys.ENTER).perform()
self.driver.find_element(By.XPATH, '//input[@aria-label="搜索"]').send_keys(Keys.ENTER)
self.action.send_keys(Keys.ENTER).perform()

3.3、键盘事件-复制粘贴

  • 多系统兼容
    • mac 的复制按钮为 COMMAND
    • windows 的复制按钮为 CONTROL
  • 左箭头:Keys.ARROW_LEFT
  • 按下COMMAND或者CONTROL: key_down(cmd_ctrl)
  • 按下剪切与粘贴按钮: send_keys("xvvvvv")

四、鼠标事件

4.1、双击

  • double_click(元素对象): 双击元素
def test_double_click(self):
        self.driver.get("https://vip.ceshiren.com/#/ui_study/frame")
        ele01 = self.driver.find_element(By.XPATH, '//button[@class="el-button el-button--primary"]')
        self.action.double_click(ele01).perform()
        time.sleep(3)

4.2、鼠标事件-拖动元素

  • drag_and_drop(起始元素对象, 结束元素对象): 拖动并放开元素
def test_drag_and_drop(self):
        self.driver.get("https://vip.ceshiren.com/#/ui_study/action_chains")
        ele01 = self.driver.find_element(By.ID, "item1")
        ele02 = self.driver.find_element(By.ID, "item3")
        self.action.drag_and_drop(ele01, ele02).perform()

4.3、 鼠标事件-悬浮

  • move_to_element(元素对象): 移动到某个元素
def test_move_to_element(self):
        self.driver.get('https://vip.ceshiren.com/#/ui_study/action_chains2')
        ele01 = self.driver.find_element(By.XPATH, '//div [@data-v-3e28c77a and @class="title"]')
        self.action.move_to_element(ele01).perform()
        self.driver.find_element(By.XPATH, '//*[contains(text(),"管理")]').click()

五、滚轮/滚动操作

  • 滚动到元素
  • 根据坐标滚动
注意: selenium 版本需要在 4.2 之后才支持滚动操作

5.1、滚动到元素

  • ActionChains().scroll_to_element().perform()
def test_scroll_to_element(self):
        self.driver.get('https://ceshiren.com/')
        ele01 = self.driver.find_element(By.PARTIAL_LINK_TEXT, "jmeter分布式压测创建多节点报错")
        self.action.scroll_to_element(ele01).perform()
        self.action.scroll_by_amount(0, 100).perform()   
        ele01.click()

5.2、根据坐标滚动

  • ActionChains.scroll_by_amount(横坐标,纵坐标)
def test_scroll_by_amount(self):
        self.driver.get('https://ceshiren.com/')
        self.action.scroll_by_amount(0, 1000).perform()

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

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

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

相关文章

内网即时通讯软件:提升政企办公效率与数据安全的利器

在当今信息快速传播的社会中,即时通讯软件已经成为了人们生活中不可或缺的一部分。然而,对于政府机构和企业来说,传统的大众即时通讯软件已经不再满足他们日常工作的需求。市面上大多数个人即时通讯软件都是为大众用户设计的,它们…

【文末送书】用Chat GPT轻松玩转机器学习与深度学习

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

PY32F003F18之RTC

一、RTC振荡器 PY32F003F18实时时钟的振荡器是内部RC振荡器,频率为32.768KHz。它也可以使用HSE时钟,不建议使用。HAL库提到LSE振荡器,但PY32F003F18实际上没有这个振荡器。 缺点:CPU掉电后,需要重新配置RTC&#xff…

Docker版部署RocketMQ开启ACL验证

一、拉取镜像 docker pull apache/rocketmq:latest 二、准备挂载目录 mkdir /usr/local/rocketmq/data mkdir /usr/local/rocketmq/conf 三、运行 docker run \ -d \ -p 9876:9876 \ -v /usr/local/rocketmq/data/logs:/home/rocketmq/logs \ -v /usr/local/rocketmq/data…

数字化工厂系统能给企业品牌带来什么价值

数字化工厂管理系统是指通过数字技术和自动化系统来实现生产过程的数字化和智能化的工厂。它对品牌的价值主要体现在提高效率、降低成本、提升品质和增强灵活性四个方面。 首先,数字化工厂能够显著提高生产效率。传统工厂生产过程中存在很多手工操作和人为干预&…

pyspark.sql.dataframe.DataFrame 怎么转pandas DataFrame

pyspark.sql.dataframe.DataFrame 怎么转pandas DataFrame 要将 PySpark 的 pyspark.sql.dataframe.DataFrame 转换为 Pandas DataFrame,可以使用 toPandas() 方法。以下是一个示例: from pyspark.sql import SparkSession# 创建 SparkSession 对象 sp…

SAP移动端解决方案参考

企业在实现SAP移动化时遇到的一些挑战,如果我们利用自己开发团队来进行应用程序的开发,可能会陷入规划,开发,调试,测试的循环中,最后仍一无所获。那如果企业寻找第三方咨询公司进行开发的话,又担…

分享5款无广告免费的高效软件

​ 有句老话这样讲,工欲善其事,必先利其器,好的工具可以让你工作起来事半功倍。今日为大家推荐5款神器软件,提升你的工作效率。 1.数据恢复——EasyRecovery ​ EasyRecovery是一款数据恢复工具,它可以恢复从硬盘或移动存储设备…

多个短视频如何合并为一个长视频?原来靠它

随着电子设备的流行,越来越多的用户喜欢制作视频来记录生活,以便将美好回忆永久保存方便日后观看。通常,人们更倾向于将多个短视频合并为一个长视频,因为这样更容易存储。那么,怎样才能将多个短视频合并为一个长视频呢…

c++ 使用rapidjson对数据序列化和反序列化(vs2109)

RapidJSON是腾讯开源的一个高效的C JSON解析器及生成器&#xff0c;它是只有头文件的C库&#xff0c;综合性能是最好的。 1. 安装 在NuGet中为项目安装tencent.rapidjson 2. 引用头文件 #include <rapidjson/document.h> #include <rapidjson/memorystream.h> #…

成都瀚网科技有限公司:抖店精选联盟怎么用?

抖音精选联盟是抖音电商平台提供的一项服务&#xff0c;旨在为商家提供更多的推广机会和销售渠道。然而&#xff0c;很多人对于如何使用抖店精选联盟以及如何开通这项服务不太了解。本文将为您详细介绍抖店精选联盟的使用和激活流程。 第一节&#xff1a;如何使用抖店精选联盟 …

可以动态改变刻度背景色的车速仪表盘

最近做的项目的主页面需要用到一个仪表盘来动态显示车速&#xff0c;同时改变对应的背景色 仪表盘 开始是想着使用echarts&#xff0c;修修改改拿来用&#xff0c;但是人家客户有规定&#xff0c;必须搞个差不多的&#xff0c;那没办法&#xff0c;自 己动手搞个吧 截图如下&am…

【目标检测】——Gold-YOLO为啥能超过YOLOV8

华为 https://arxiv.org/pdf/2309.11331.pdf 文章的出发点&#xff1a;FPN中的信息传输问题 1. 简介 基于全局信息融合的概念&#xff0c;提出了一种新的收集和分发机制&#xff08;GD&#xff09;&#xff0c;用于在YOLO中进行有效的信息交换。通过全局融合多层特征并将全局信…

AIGC玩转卡通化技术实践

FaceChain写真开源项目插播&#xff1a; 最新 FaceChain支持多人合照写真、上百种单人写真风格&#xff0c;项目信息汇总&#xff1a;ModelScope 魔搭社区 。 github开源直达&#xff08;觉得有趣的点个star哈。&#xff09;&#xff1a;https://github.com/modelscope/…

护眼灯显色指数应达多少?眼科医生推荐灯光显色指数多少合适

台灯的显色指数是其非常重要的指标&#xff0c;它可以表示灯光照射到物体身上&#xff0c;物体颜色的真实程度&#xff0c;一般用平均显色指数Ra来表示&#xff0c;Ra值越高&#xff0c;灯光显色能力越强。常见的台灯显色指数最低要求一般是在Ra80以上即可&#xff0c;比较好的…

Spring进阶(AOP的应用)—— 动态代理AOP后controller层的private方法访问失效的问题

前言 动态代理&#xff0c;面向切面编程AOP&#xff08;Aspect Oriented Programming&#xff09;作为spring中的一个重点和难点&#xff0c;需要不断深入理解&#xff0c;并且在项目中学习如何灵活应用。 本篇博客介绍动态代理AOP在实际应用中遇到的private方法访问失效的问…

亚马逊电动玩具UL696的测试报告办理

在亚马逊平台销售的电子产品&#xff0c;要符合指定的标准&#xff0c;如果不合格很容易发生起火&#xff0c;爆炸等危及消费者生命财产的安全&#xff0c;因此很多客户因为缺少UL报告&#xff0c;导致产品被下架&#xff0c;销售权被移除等问题&#xff0c;也少不了同行之间的…

leetCode 63.不同路径II 动态规划 + 空间复杂度优化 一维dp

63. 不同路径 II - 力扣&#xff08;LeetCode&#xff09; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&…

.NET Core nuget 组件的安装、更新、卸载

上面的 NuGet\ 是可以省略的。 更新 Update-Package xxx 卸载 Uninstall-Package xxx Uninstall-Package Newtonsoft.Json

400G QSFP-DD FR4 与 400G QSFP-DD FR8光模块:哪个更适合您的网络需求?

QSFP-DD 光模块随着光通信市场规模的不断增长已成为400G市场中客户需求量最高的产品。其中400G QSFP-DD FR4和400G QSFP-DD FR8光模块都是针对波分中距离传输&#xff08;2km&#xff09;的解决方案&#xff0c;它们之间有什么不同&#xff1f;应该如何选择应用&#xff1f;飞速…