前两天试了下macaca移动端自动化,启动了simulator后一直装不了应用,错误提示不详细。官方网站翻了遍真心觉得文档好少....于是作为新手,还是先尝试下比较成熟的appium...
安装过程就不详细写了,因为好早前就已经陆续装过appium所依赖的一些东西。推荐看看虫师的安装过程,感觉比较全。我对着文章重新check了一遍安装的环境,就ok了。这里是链接,http://www.cnblogs.com/fnng/p/4540731.html
这里主要记录下文章中可以启动appium后(http://www.cnblogs.com/fnng/p/4579152.html ),运行小demo遇到的问题。
虫师文章中是启动模拟器,启动Appium,在运行python脚本。demo是,运行系统自带的计算器,做个小运算。原代码如下:
![](https://img.haomeiwen.com/i191989/244ce571d051ec80.png)
下面记录下我实际操作的过程~~~
踩坑1:
我电脑配置太低,先是建了个Android6.0,分辨率高一点的模拟器,打开后一直卡在黑屏,启动失败。然后建了个配置低一点的模拟器,停在黑屏后的android字样开机页面不知过了多久,终于开机成功。然而...点击屏幕上的任何按钮都木有反应...于是有了方案二:用真机。
注意:换了真机后,appium会自动查找已连上的设备的。可以在终端输入adb devices检查下设备有没连上。
好,接上我的神机小米4后,愉快的发现报的错不一样了!不再是timeout了!
踩坑2:
现在开始报Remote install failed,远程安装失败。(最开始我是用的一个安装包试的,所以后面是在安装一个apk的文件)
![](https://img.haomeiwen.com/i191989/5a347effe560f373.png)
灵光一现,看了看手机的开发者选项,果然是一系列的选项没有勾选。其中就有一项叫“USB安装”的开关,果断开启,另外也打开了USB调试选项(这样可以运行模拟点击)。
![](https://img.haomeiwen.com/i191989/0b4d56ff8429e5f5.png)
再次运行Appium和脚本,愉快的发现报错又不一样了!
踩坑3:
当时用一个应用的apk试了下发现应用是可以启动的,那么为什么脚本中的计算器打不开呢?报错大概是:process not found,apk not found类似的错误。意思就是在系统中找不到这个应用。看了一下代码,发现appPackage,是com.android.calculator2。通过这个参数去定位应用的,那肯定是这个地方有问题。
下载了一个可以看到各软件包名的应用。(http://www.pc6.com/az/354160.html )
包名改好后,又遇到个新错误,提示Activity不存在。通过看包名的软件可以看到启动类,将后面的.cam.CalculatorActivity替换掉原文章代码中的appActivity内容就好了。
![](https://img.haomeiwen.com/i191989/8a7132fc5d8eff24.png)
![](https://img.haomeiwen.com/i191989/69775341d8014af1.png)
![](https://img.haomeiwen.com/i191989/053b76bc91630616.png)
于是!计算器终于成功启动了!并自动输入了几个数字!然而代码没运行完,又报了个错=。=
踩坑4:
代码中通过name ‘delete’去找的元素没找到。这个错挺合理的。android系统各有不同,系统计算器样式也各不相同。那么怎么去定位app页面上的元素呢?
![](https://img.haomeiwen.com/i191989/ba46359b4ae0ac89.png)
可以使用android-sdk下tools文件夹中uiautomatorviewer工具。(mac下可以用appium自带的inspector工具)
路径是:\Android\android-sdk\tools\uiautomatorviewer.bat 双击打开就好。
打开后是空白页面,点击下图中箭头所指图标(左边图标会显示更详细的元素,右边图标显示比较精简的元素),就会刷新出所连手机的界面啦~
![](https://img.haomeiwen.com/i191989/69624353fdaaeae7.png)
在手机端点开计算器后,再在uiautomatorviewer中刷新一次,鼠标移动到界面元素上,就可以在右侧看到相关信息了。
![](https://img.haomeiwen.com/i191989/716fff0d65e28a36.png)
将代码中需要找的元素再重新check一遍。
![](https://img.haomeiwen.com/i191989/ef28e90707f53bc5.png)
OOOOOOK!代码终于正常的跑了一遍,并自动关闭应用!
结束!
继续加油~~~:)
网友评论