Selenium 大家用做 UI 自动化测试的时候,遇到不知道何时出来的弹窗,如何处理的,也分享下自己的方法

火山草 · 2021年08月18日 · 最后由 国际混子 回复于 2022年02月24日 · 4950 次阅读

最近业务经常会跳出叫你升级的弹窗,导致跑挂了。
自己用过 uiautomater2,知道有个 watcher 的方法,可以做到监控弹窗的效果。大概看了下源码,发现是创建的一个线程去识别。
如何自己也造这个思路去试了一试发现还真的可以。
不知道大家是怎么处理的,希望能多多交流

共收到 9 条回复 时间 点赞

我记得我之前看过的一个专栏里面;好像是统计了一个列表,里面是可能会弹出的弹窗元素;后面在正常执行用例,如果操作元素失败时;先去看是否遇到了上面统计的弹窗;如果不是的话再报错。

这个问题,经常遇到,app 常弹消息推送,广告;广告还好处理,消息推送因为时机不可控有点头疼,现在考虑的是做个全局的,定位不到元素时,就判断下是不是遇到消息推送了

404铁头娃 回复

极客时间的《软件测试 52 讲》,作者:茹炳晟.
记得好像作者也在论坛里。

404铁头娃 回复

嗯 那就是说要不断的手机这个弹窗是把

huangwang 回复

确实 能够预期到的弹窗还好解决,如果连预期都预期不到的,只能在定位不到的元素的情况下,试试能不能判断出现了弹窗

有个思路是错误处理的思路, 和一楼的方案一样, 将代码功能业务的弹出放入到列表中, 在动作失败的时候, 如果判断是 Alert 异常导致的, 则开始判断是否存在于列表. 然后处理掉之后重新回调出错的函数. 使用例继续向下运行.

电脑装个火绒,开启弹框拦截,之前我搞 selenium 就是这样做的

chend 回复

确实 挺多这样的思路

我的笨方法:写一个针对该弹框的方法,然后业务流方法中开头每次调用一下

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册