UI自动化测试:遍历页面元素并获取文本的实践分享!

遍历读取元素的文本

在写UI自动化过程中还会遇到需要遍历读取元素的情况。下面分享以「稿定设计」网站为例,想要通过UI自动化读取素材内容的操作菜单列表,如下图:

图片

代码片段和解释

# 获取菜单列表元素的文本信息,例如:创建副本、复制到...li_elements = self.page.eval_on_selector_all('.gda-menu.gda-menu-vertical.gda-menu-root.gda-menu-light.gd-dam-components__menu-builder__menu-builder li',                                                'elements => elements.map(element => element.textContent)')# 去除空元素li_elements = [item for item in li_elements if item != '']

代码的简要解释:

  • self.page 表示当前页面的实例。

  • eval_on_selector_all 方法用于在页面上查找所有匹配给定CSS选择器的元素,并对它们执行JavaScript代码。

  • '.gda-dropdown.gda-dropdown-placement-topLeft li' 是CSS选择器,用于选择具有类gda-dropdown和gda-dropdown-placement-topLeft的<li>元素。

  • 'elements => elements.map(element => element.textContent)' 是传递给eval_on_selector_all方法的JavaScript代码。它接收一个元素数组,然后使用map函数将每个元素转换为其文本内容

图片

最后

我这边进行自动化的目的是将获取到的元素文本列表写入到excel文件中与预期线上环境的元素列表进行对比,以验证当前迭代发布的操作菜单列表是否正确~本次的分享主要学习如何遍历读取html页面上“li”标签下的元素文本,具体的实际运用需要各自结合自己的业务使用~

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

软件测试面试文档

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

在这里插入图片描述


http://www.ppmy.cn/news/1512202.html

相关文章

MySQL:从入门到放弃

基础查询 MySQL&#xff1a;基础查询 Mybatis&#xff1a;基础巩固-DDL 项目实战 MySQL&#xff1a;按照日期分组查询 查询开始时间与结束时间在指定的日期范围之内&#xff0c;并且结束时间可以为NULL的数据

Linux系统(2)

文件IO 操作系统为了方便用户使用系统功能而对外提供的一组系统函数。称之为系统调用 其中有个 文件IO 一般都是对设备文件操作,当然也可以对普通文件进行操作。 一个基于Linux内核的没有缓存的IO机制 特性&#xff1a; .1 没有缓存区 …

C++面向对象 | 三大特性:访问权限、继承、封装、多态

目录 访问权限 继承 封装 多态 总结访问修饰符 访问权限 C通过 public、protected、private三个关键字来控制成员变量和成员函数的访问权限&#xff0c;它们分别表示公有的、受保护的、私有的&#xff0c;被称为成员访问限定符。 在类的内部&#xff08;定义类的代码内…

特殊类类型转换

本节推荐多看示例代码 特殊类 不允许拷贝的类 default 拷贝&拷贝构造函数 只允许在堆上建立本对象的类 构造&#xff0c;拷贝构造&#xff0c;都放到private&#xff0c;提供static函数创建堆上对象 不允许继承的类 final修饰类 只能创建一个对象的类 不用计数法 恶汉…

机器学习八-模型部署

模型部署是将机器学习模型从开发环境转移到生产环境的过程&#xff0c;使模型能够在实际应用中提供预测或决策支持。部署模型的目标是让最终用户或系统能够利用模型的输出&#xff0c;以便在业务或产品中发挥其作用。 模型部署的步骤 模型准备: 模型导出&#xff1a;将训练好的…

二叉树(四)

一、二叉树的性质 二、练习 1.某二叉树共有399个节点&#xff0c;其中有199个度为2的节点&#xff0c;则二叉树中的叶子节点数为&#xff08; &#xff09;。 A.不存在这样的树 B.200 C.198 D.199 答案&#xff1a;B 参考二叉树的性质第三条 2.在具有2…

yield生成器生成表单字段,并进行验证,利用fetch方法和formData对象传递数据给后端,后端返回成功,返回数据

这里主要利用生成器函数生成配置的表单字段&#xff1b;然后设置验证规则&#xff1b;验证用户填写的数据信息&#xff1b; 验证通过后&#xff0c;利用fetch异步传递方法将formdata数据传给后端&#xff1b;后端再进行验证返回数据 formfieldgenerator.js文件 //生成器函数&am…

ActiveMQ、RabbitMQ、Kafka、RocketMQ在优先级队列、延迟队列、死信队列、重试队列、消费模式、广播模式的区别

ActiveMQ、RabbitMQ、Kafka、RocketMQ这四款消息队列在优先级队列、延迟队列、死信队列、重试队列、消费模式、广播模式等方面各有其特点和差异。以下是对这些方面的详细比较&#xff1a; 1. 优先级队列 ActiveMQ&#xff1a;支持优先级队列&#xff0c;可以在发送消息时指定…

linux-常用命令

在Linux系统中&#xff0c;常用的指令非常多&#xff0c;这些指令覆盖了文件管理、系统监控、网络操作、用户管理等多个方面。 以下是一些最常用的Linux指令&#xff0c;以表格形式列举&#xff1a; 序号指令描述1ls列出当前目录中的文件和子目录2pwd显示当前工作目录的路径3c…

SpringBoot+OSS文件上传

SpringBoot整合OSS实现文件上传 以前,文件上传到本地(服务器,磁盘),文件多,大,会影响服务器性能 如何解决? 使用文件服务器单独存储这些文件,例如七牛云存储,阿里云OSS,腾讯云cos等等 ​ 也可以自己搭建文件服务器(FastDFS,minio) 1 开通OSS 2 创建bucket 其他不用管,直接…

【编程知识】如何有趣的理解变量的数据类型和数值

其实我们在创建变量的时候呢我们可以用法律来作比喻,把数据类型理解为“定罪”,变量的值具体为多少可以理解为“量刑” 在编程的世界里,变量就像是个“小罪犯”,数据类型就是它的“罪名”,而变量的值呢,就像是它的“刑期”或者说是“罚款金额”。 想象一下,你创建了一个…

达梦数据库表结构导出到 Excel 教程

在数据库开发和维护中&#xff0c;导出数据表结构是常见的需求之一&#xff0c;特别是在进行数据库文档化、系统迁移、版本控制等工作时。通过导出表结构到 Excel&#xff0c;我们可以方便地查看、分析和分享表结构信息。在本文中&#xff0c;我将结合达梦数据库的相关 SQL 查询…

jenkinsfile中的sshPublisher使用

sshPublisher作用&#xff1a; 在 Jenkinsfile 中&#xff0c;sshPublisher主要用于通过 SSH&#xff08;Secure Shell&#xff09;协议将文件从 Jenkins 所在的服务器传输到远程服务器上。 以下是它的一些主要作用&#xff1a; 一、部署应用 当进行持续集成和持续部署流…

【现代操作系统】1. intro

本系列为上海交通大学现代操作系统课程的笔记&#xff0c;仅用于学习过程的记录 什么是操作系统 操作系统有两个职责 对硬件进行管理和抽象为应用提供服务并进行管理 从硬件角度看 操作系统讲复杂的、具备不同功能的硬件资源纳入统一的管理操作系统负责将硬件抽象成不依赖具体…

【spring boot自动配置】深入探讨 Spring Boot 自动配置:实现与机制

Spring Boot 是现代 Java 开发中的重要工具&#xff0c;它极大地简化了 Spring 应用的配置和管理。其核心特性之一——自动配置&#xff08;Auto-Configuration&#xff09;&#xff0c;使得开发者能够以最少的配置迅速启动应用。在这篇文章中&#xff0c;我们将深入探讨 Sprin…

bash_01_tar_01_如何创建解压压缩包

1. 压缩 tar -zcvf 命令中的参数分别代表以下含义&#xff1a; tar: 这是 Linux 中用于创建和解压缩归档文件的命令。 -z: 表示使用 gzip 工具进行压缩。 -c: 表示创建新的归档文件。 -v: 表示在压缩过程中显示详细的信息&#xff0c;例如正在压缩的文件名。 -f: 表示指定要创…

flume系列之:flume生产环境sink重要参数理解

flume系列之:flume生产环境sink重要参数理解 sink1.hdfs.maxOpenFilessink1.hdfs.threadsPoolSizesink1.hdfs.rollTimerPoolSizesink1.hdfs.rollCountsink1.hdfs.rollSizesink1.hdfs.rollSizesink1.hdfs.rollIntervalsink1.hdfs.idleTimeoutsink1.hdfs.batchSizesink1.hdfs.wr…

【超入門】用ComfyUI快速套用AnimateDiff工作流生成AI動畫

Git官方下載&#xff1a;https://git-scm.com/downloads &#x1f530;FFmpeg安裝指令&#xff1a;winget install -e --id Gyan.FFmpeg &#x1f530;ComfyUI安裝&#xff1a;https://github.com/comfyanonymous/Com... &#x1f530;Cardos Anime模型下載&#xff1a;https:/…

CSP-CCF 202303-1 田地丈量

一、问题描述 问题描述 西西艾弗岛上散落着 &#x1d45b; 块田地。每块田地可视为平面直角坐标系下的一块矩形区域&#xff0c;由左下角坐标 (&#x1d465;1,&#x1d466;1) 和右上角坐标 (&#x1d465;2,&#x1d466;2) 唯一确定&#xff0c;且满足 &#x1d465;1<&…

SpringBoot依赖之Spring Data Redis 实现HyperLogLog类型

概念 Spring Data Redis (AccessDriver) 依赖名称: Spring Data Redis (AccessDriver)功能描述: Advanced and thread-safe Java Redis client for synchronous, asynchronous, and reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Reconnect, Codecs and muc…