博客
关于我
uiautomator点击不同对话框按钮--正则表达式
阅读量:632 次
发布时间:2019-03-13

本文共 1204 字,大约阅读时间需要 4 分钟。

如何防止弹出框中断脚本操作并优化代码流程

在编写自动化脚本时,弹出框的存在往往会成为无形的掣肘。特别是在手机端应用中,更频繁会遇到各种类型的弹出提示框。

一般来说,这类对话框都会有不同的提示内容,按钮名称也不尽相同。在传统编程方法下,为了应对不同的提示框,我们需要逐个去寻找指定的控件并进行点击操作。这种方法极其繁琐,尤其在面对大量的弹出提示框时会成为 Stamina 的大敌。

确实,这样的操作方式会引发一系列问题:正常工作流程中出现不确定性提示框,脚本自动化操作会因为中断而无法继续进行;同时,每次弹出提示框都需要手动获取控件属性并进行点击,极大增加了脚本的运行复杂度。

针对这一痛点,许多开发人员选择写定位方式,从资源属性层面预估点击目标是否为确定按钮。这种方法虽然可行,但存在一个潜在问题:如果对话框的资源描述或文本内容发生变化,该方法会失败。

因此,更灵活的方案应考虑使用正则表达式来动态匹配弹出框中的确定按钮。这种方法可以自动适应不同的对话框布局和描述,减少因界面变更引起的维护工作。

针对常见的以文字描述的确定按钮,我们可以将它们归纳为几个模式类别:

  • 确认操作类按钮(如"是"、"确认"、"确定"、"是"、"好的"等)
  • 提示性强调类按钮(如"OK"、"确认"、"完成"等)
  • 语境化短语类按钮(如"通过"、"继续"、"是"、"完成"等)
  • 数字或符号表示类按钮(如"1"、"•"、"."等)
  • 基于这些常见模式,正则表达式可以编写为通用匹配模式,例如:

    ([\s\S]{0,10})(匹配0到10个字符的文本)

    但为了更有效地对话框处理,我们可以采用更精准的规则,例如:

    \) 确定按钮的文字内容:\b后面跟着具体的中文词组或数字符号)\b. 通常可以简化为:

    (\d+)|确定|确认|是|好的|继续|完成|通过|操作成功|执行

    这种方法能有效覆盖大部分常见的确定按钮文字描述。

    在实际应用中,选择适当的确定按钮匹配方式至关重要。对于不确定性提示框,我们可以采用较为宽松的模式匹配,以容忍一定程度的文本偏差。

    此外,还需要注意对话框类型差异可能带来的额外问题。例如,资源管理类对话框通常会采用较简洁的提示语和统一的确定按钮形式,相比之下,操作确认对话框可能使用确认信息更为丰富。在编写正则表达式时,针对不同场景的对话框类型,适当调整匹配程度。

    具体的实现方式还有待于具体的应用场景来决定,但已有的经验表明,基于正则表达式的动态匹配能够显著提升弹出框对抗的效率,减少因为提示框出现而干扰脚本正常运行的可能性。

    总体而言,选择问题适应型的手动处理方案比硬编码更具适应性和灵活性。这种灵活性可以避免因界面变化导致的 maintain 工作量增加,让脚本更加稳定可靠地运行。

    在实际开发过程中,可以对发现的提示框进行反馈,收集更多实际使用中的模式,从而进一步完善正则表达式规则,使其在更广泛的场景下有效运行。

    转载地址:http://uhyoz.baihongyu.com/

    你可能感兴趣的文章
    mysql [Err] 1436 - Thread stack overrun: 129464 bytes used of a 286720 byte stack, and 160000 bytes
    查看>>
    MySQL _ MySQL常用操作
    查看>>
    MySQL – 导出数据成csv
    查看>>
    MySQL —— 在CentOS9下安装MySQL
    查看>>
    mysql 不区分大小写
    查看>>
    mysql 两列互转
    查看>>
    MySQL 中开启二进制日志(Binlog)
    查看>>
    MySQL 中文问题
    查看>>
    MySQL 中日志的面试题总结
    查看>>
    MySQL 中随机抽样:order by rand limit 的替代方案
    查看>>
    MySQL 为什么需要两阶段提交?
    查看>>
    mysql 为某个字段的值加前缀、去掉前缀
    查看>>
    mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
    查看>>
    mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
    查看>>
    mysql 主键重复则覆盖_数据库主键不能重复
    查看>>
    Mysql 优化 or
    查看>>
    mysql 优化器 key_mysql – 选择*和查询优化器
    查看>>
    MySQL 优化:Explain 执行计划详解
    查看>>
    Mysql 会导致锁表的语法
    查看>>
    mysql 使用sql文件恢复数据库
    查看>>