由于公司项目需要,开始学习 Uiautomator 进行自动化脚本的编写。由于是第一次做移动端的自动化,感觉和 web 端的自动化还是有很大的不一样。看了两天的 API,便开始进行编写脚本。在编写脚本的过程中还是遇到不少问题,但是网上关于 Uiautomator 的资料比较少,大部分都是一些 Demo。所以想在此发个帖子对所遇见的问题进行汇总,并且希望遇到类似问题或者知道的大神们能够帮忙解答下。谢谢~
首先说下我目前遇到的几个问题:
针对你第二个问题: 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 嗯,谢谢。我试试去~
有个小问题请教下:我使用 appium+python 根据控件 ID 和 class 定位元素的时候,不仅是等了很久,还是依旧无法定位成功,持续报错。这是什么原因呢
没深入过 appium,可以问问其他同学