其他测试框架 Uiautomator 自动化测试问题汇总与交流

tommy · 2015年01月12日 · 最后由 易寒 回复于 2018年12月04日 · 3074 次阅读

由于公司项目需要,开始学习 Uiautomator 进行自动化脚本的编写。由于是第一次做移动端的自动化,感觉和 web 端的自动化还是有很大的不一样。看了两天的 API,便开始进行编写脚本。在编写脚本的过程中还是遇到不少问题,但是网上关于 Uiautomator 的资料比较少,大部分都是一些 Demo。所以想在此发个帖子对所遇见的问题进行汇总,并且希望遇到类似问题或者知道的大神们能够帮忙解答下。谢谢~

首先说下我目前遇到的几个问题:

  1. 如何对自定义的控件进行元素定位,e.g. 如下图:
  2. 使用 uiautomatorviewer 定位某些页面元素的时候老是报错,目前还没找到解决方案,错误日志如图:
共收到 10 条回复 时间 点赞

针对你第二个问题:
uiautomatorviewer 无法捕捉动态界面。可以看看下面 2 篇博客:
获取不到动态界面
获取不到动态界面的原因

第一个问题我做过,封装一个方法,一个一个去滑动对比,如果是你想要年、月、日的就完成。年的话判断下现有的决定往上还是往下滑,月和日无所谓,反正是循环的。

#2 楼 @weamylady 我们现在要测试的应用里面好多类似这样通过滑动选择的控件,不知道如何定位。可以在麻烦你发个 Demo 给我看看吗?谢谢~

#1 楼 @doctorq嗯,我 看了下这两篇文章,还是没有解决方案,(原谅我基础不是太好)。不知道大神对于这种动态页面的定位有没有比较好的定位方案呢?谢谢~

#4 楼 @mistyrain 我们采用的是利用 hierarchyviewer 来查看 id 的方式做的,因为 uiautomatorviewer 会报错,但是只要你能定位该控件,在 uiautomator 脚本中一样会执行成功,但是会等待 10 秒钟的时间。你需要耐心,不要急于达到你想要的结果。慢慢研究 uiautomator 的源码以及 api 对你会很有帮助的。

#3 楼 @mistyrain 发不了代码,发挥你的想象力吧~很容易的,把 monthUpButton,dayUpButton, yearUpButton, yearDownButton 找到然后定义了,写一个简单 while 循环就可以设置某个值了。while 循环类似于下面这样,如果怕死循环的话可以用 For

while (!curMonth.equals(month)) {
            monthUpButton.click();
            curMonth= monthTextObject.getText();
        }

#5 楼 @doctorq 嗯嗯,好的。十分感谢~继续研究去了。。。

#6 楼 @weamylady 嗯,谢谢。我试试去~

黑水 [该话题已被删除] 中提及了此贴 07月06日 22:41
易寒 回复

有个小问题请教下:我使用 appium+python 根据控件 ID 和 class 定位元素的时候,不仅是等了很久,还是依旧无法定位成功,持续报错。这是什么原因呢

没深入过 appium,可以问问其他同学

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