正则表达式在UI自动化中的秒用!

正则表达式在UI自动化中的秒用

正则表达式是一种用于匹配文本的强大工具,它可以用来搜索、替换和分析文本,也可以应用到「UI自动化中元素的定位中」

接下来先看我们出错的代码,如下

poco("附近 第 1 个标签,共 3 个").click()

Cannot find any visible node by query UIObjectProxy of

    raise PocoNoSuchNodeException(self)
poco.exceptions.PocoNoSuchNodeException: Cannot find any visible node by query UIObjectProxy of "附近 第 1 个标签,共 3 个"

元素信息

图片

Path from root node: [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0]
Payload details:
   type :  android.view.View 
   name :  附近
第 1 个标签,共 3 个 
   desc :  附近
第 1 个标签,共 3 个 
   enabled :  True 
   visible :  True 
   resourceId :  b'' 
   zOrders :  {'global': 0, 'local': 0} 
   package :  b'com.ymt360.app.mass' 
   anchorPoint :  [0.5, 0.5] 
   dismissable :  False 
   checkable :  False 
   scale :  [1, 1] 
   boundsInParent :  [0.19722222222222222, 0.05778894472361809] 
   focusable :  True 
   touchable :  True 
   longClickable :  False 
   size :  [0.19722222222222222, 0.05778894472361809] 
   pos :  [0.31574074074074077, 0.08793969849246232] 
   focused :  False 
   checked :  False 
   editalbe :  False 
   selected :  True 
   scrollable :  False 

实现方式

附近[\s\S].*

匹配以附近为开头的所有文字

poco(nameMatches="附近[\s\S].*").click()

注意事项

在使用.来匹配任意字符时,需要注意以下几点:

  1. .不能匹配换行符,如果要匹配换行符,可以使用[\s\S]代替.

  2. .只能匹配一个字符,如果要匹配多个字符,需要使用*+?等符号。

  3. .是一个特殊符号,如果要匹配.本身,需要使用\.进行转义。

容易出错的地方和技巧

  1. 贪婪匹配 默认情况下,正则表达式使用贪婪匹配,可能导致匹配结果不符合预期,需要使用非贪婪匹配(在量词后面加?)来避免这种问题。

  2. 忽略大小写匹配 在匹配时需要考虑大小写问题,可以使用re.IGNORECASE标志或者在表达式中使用(?i)进行忽略大小写匹配。

  3. 字符集中的连字符 在字符集中使用连字符时要注意,如果想要匹配连字符本身,需要进行转义,否则会被解释为范围。

  4. 特殊字符的转义 正则表达式中的特殊字符如.*+等需要进行转义,否则可能导致意想不到的匹配结果。

  5. 贪婪匹配时的性能问题 贪婪匹配可能导致性能问题,尤其是在处理大量数据时,需要注意匹配的效率。

结论

总之,正则表达式是一项强大的工具,但也需要谨慎使用。掌握好正则表达式的使用技巧和注意事项,能够让我们更高效地处理文本数据,提高工作效率。

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

软件测试面试文档

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式-迭代器模式-笔记

动机(Motivaton) 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们呢希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“同一…

力扣刷题-二叉树-二叉树的高度与深度

二叉树最大深度 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 递归法 本题可以使用前序(中左…

2024中国人民大学计算机考研分析

24计算机考研|上岸指南 中国人民大学 中国人民大学计算机考研招生学院是信息学院。目前均已出拟录取名单。 中国人民大学在1978年创立了经济信息管理系,它是国内最早建立的将数学与信息技术在经济管理领域应用为特色的系科。1986年,在原系计算站的基础…

一段来自《Verilog HDL 高级数字设计》的错误Verilog代码

笔者之前在阅读《Verilog HDL 高级数字设计》时的基4布斯乘法器一文时,就遇到了一段有问题的代码,而这个问题可以用Verilog基础:表达式位宽的确定(位宽拓展)文中的分析完美解决。 always (negedge clock) if (Start)…

认识前端包常用包管理工具(npm、cnpm、pnpm、nvm、yarn)

随着前端的快速发展,前端的框架越来越趋向于工程化,所以对于包的使用也越来越多,为了优化性能和后期的维护更新,对于前端包的管理也尤为重要,本文主要阐述对node中包管理工具的理解和简单的使用方法。也欢迎各位大佬和同行们多多指教。😁😁😁 👉1. npm 安装npm 通…

城市生命线丨桥梁健康监测系统应用详情

现代城市当中,桥梁的重要性以及危险性是最高的,因此,对于桥梁的安全健康监测就会变得更加的重要,在科技发展的今天,新型基础设施已经能够准确、实时的监测桥梁的安全和健康。 WITBEE万宾助力建设更健康,智慧…

gRPC 四模式之 服务器端流RPC模式

服务器端流RPC模式 在一元 RPC 模式中,gRPC 服务器端和 gRPC 客户端在通信时始终只有一个请求和一个响应。在服务器端流 RPC 模式中,服务器端在接收到客户端的请求消息后,会发回一个响应的序列。这种多个响应所组成的序列也被称为“流”。在…

力扣刷题-二叉树-二叉树最小深度

给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。(注意题意) 示例 1: 输入:root [3,9,20,null,null,15,7] 输出&#x…

PC3392H高性价方案比10V-120V输入1.5A大电输出内置MOS管带EN功能实现零功耗使能只需极少元器件

1.PC3392H 特性  通过使能脚关断实现零功耗  宽电压输入范围 10V 至 120V  最大输出电流 1.5A  集成功率 MOS 管  外围器件少  输出短路保护  温度保护  逐周期限流  输出电压灵活可靠  ESOP8 2. 描述 PC3392H 一款宽电压范围降压型 DC-DC 电源…

Matplotlib实现Label及Title都在下方的最佳姿势

Matplotlib实现Label及Title都在下方的最佳姿势 1. 问题背景2. 基本思想(可以不看)3. 方法封装4. 调用实例5. 总结6. 起飞 1. 问题背景 用python绘制下面这种图的时候,一般用xlable作为子图的标题,这是因为plt.title()方法绘制的…

YOLO目标检测——无人机航拍输电线路绝缘瓷瓶数据集下载分享【对应voc、coco和yolo三种格式标签】

实际项目应用:电力系统运维、状态监测与故障诊断、智能电网建设等领域数据集说明:无人机航拍输电线路绝缘瓷瓶数据集,真实场景的高质量图片数据,数据场景丰富标签说明:使用lableimg标注软件标注,标注框质量…

深入理解 pytest Fixture 方法及其应用!

当涉及到编写自动化测试时,测试框架和工具的选择对于测试用例的设计和执行非常重要。在Python 中,pytest是一种广泛使用的测试框架,它提供了丰富的功能和灵活的扩展性。其中一个很有用的功 能是fixture方法,它允许我们初始化测试环…

车牌识别 支持12种中文车牌类型 车牌数据集下载

开源代码 如果觉得有用,不妨给个Star⭐️🌟支持一下吧~ 谢谢! Acknowledgments & Contact 1.WeChat ID: cbp931126 2.QQ Group:517671804 加微信(备注:PlateAlgorithm),进讨论群可以获得10G大小的车牌检测和识…

Python 如何使用 MySQL 8.2 读写分离?

在这篇文章中,我们将了解如何将 MySQL 8.2 的读写分离功能与 MySQL-Connector/Python 一起使用。 作者:Frederic Descamps,MySQL 社区经理 本文和封面来源:https://blogs.oracle.com/,爱可生开源社区翻译。 本文约 120…

Yolov8部署——vs2019遇到的问题

Yolov8部署——vs2019遇到的问题 问题一: 默认库"LIBCMT"与其他库的使用冲突 解决方法:选择自己的项目右键属性——c/c——代码生成——运行库(多线程(/MT) 问题二: 文件包含在偏移0x18处开始…

若依框架的介绍与基本使用(一起走进若依框架的世界)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《若依框架开发》。🎯🎯 &…

【MySQL】聚合函数、group by、update、delete

聚合函数、group by、update、delete 前言正式开始update将孙悟空同学的数学成绩变更为 80 分将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分将总成绩倒数前三的 3 位同学的数学成绩加上 30 分将所有同学的语文成绩更新为原来的 2 倍 delete删除孙悟空同…

trzsz支持文件拖动到终端进行上传,类似lrzsz

考虑到 LapTop -> Host 1 -> Host 2 -> Docker -> TMUX,使用scp或sftp命令不方便;使用rz和sz命令就会方便很多,但是却又与 TMUX 不兼容(备注:Tmux是一个终端复用工具,允许用户在一个终端窗口中…

C语言前瞻

文章目录 C语言基础简介编译方式分布编译示例流程一步编译 代码运行运行结果展示实际代码 C语言基础简介 关于C语言的书籍,文章有很多。C的历史我不赘述,只讲C语言的基础语法和使用,帮助大家入门,同时也是自己学习过程的一个回顾。…

Python的os.path.join()详解

当你需要构建文件路径时,os.path.join() 是一个很有用的方法。这个方法会根据你的操作系统使用正确的路径分隔符(例如,在 Windows 上是反斜杠 \,在类 Unix 系统上是正斜杠 /)来连接路径中的各个部分。这样你就可以确保…