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

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

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

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

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

Cannot find any visible node by query UIObjectProxy of

 
  1.     raise PocoNoSuchNodeException(self)

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

元素信息

图片

 
  1. Path from root node: [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0]

  2. Payload details:

  3.    type :  android.view.View 

  4.    name :  附近

  5. 第 1 个标签,共 3 个 

  6.    desc :  附近

  7. 第 1 个标签,共 3 个 

  8.    enabled :  True 

  9.    visible :  True 

  10.    resourceId :  b'' 

  11.    zOrders :  {'global': 0, 'local': 0} 

  12.    package :  b'com.ymt360.app.mass' 

  13.    anchorPoint :  [0.5, 0.5] 

  14.    dismissable :  False 

  15.    checkable :  False 

  16.    scale :  [1, 1] 

  17.    boundsInParent :  [0.19722222222222222, 0.05778894472361809] 

  18.    focusable :  True 

  19.    touchable :  True 

  20.    longClickable :  False 

  21.    size :  [0.19722222222222222, 0.05778894472361809] 

  22.    pos :  [0.31574074074074077, 0.08793969849246232] 

  23.    focused :  False 

  24.    checked :  False 

  25.    editalbe :  False 

  26.    selected :  True 

  27.    scrollable :  False 

实现方式

附近[\s\S].*

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

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

注意事项

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

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

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

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

容易出错的地方和技巧

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

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

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

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

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

结论

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

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值