今天突然接到任务,老大想通过Python脚本控制手机上的APP更换正在播放的噪音,所以我在网上查了到通过appium可以实现。于是一个菜鸟开始布置Java、andriod、appium等环境。几乎把所有的坑都踩了一遍。所以想把整个过程整理一下。
1.安装Python
下面是下载Python的链接:
https://www.python.org/ftp/python/2.7.9/python-2.7.9.msi
(如果安装的Python没有pip需要手动安装一下pip:下载pip安装包,解压后,在cmd中cd到根目录下,输入命令setup.py install。)
最后将Python添加到环境变量中
2.布置Java环境
在Java官方网站上下载相应系统的jdk文件安装,全部选择默认的安装路径即可安装完成。(这里需要注意的是确定jdk的版本,我第一次就选错了,在之后需要打开uiautomatorviewer.bat时,出现闪退的情况)我在这里就采坑了,由于我在这方面是小白,上来就安装的appium,但是运行代码时,appium出现停止工作的问题,才知道需要安装java和node.js
将Jdk加入到环境,之后再cmd中输入java -version,如下图,说明安装成功。
3.Android SDK环境搭建
下载android-sdk-windows,下载后解压就好,因为我下载后不能用,所以后来下载的android-studio。
如果下载的是android-studio,则需要解压后打开android-studio\bin文件夹,找到studio.exe执行。具体的配置可参考:https://www.cnblogs.com/xiadewang/p/7820377.html,非常详细。
4.安装node.js
到官网下载node.js: https://nodejs.org/en/获取到安装文件后,直接双击安装文件,根据程序的提示,完成nodejs的安装。最后记得添加环境变量。在命令行窗口中输入node –v 如下图,说明安装成功。
5.Appium安装
Appium是用.net开发的,所以安装之前需要安装.net framework,否则安装过程中会报错,官网下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=30653
下载后解压,直接双击appium-installer.exe文件安装,桌面会生成一个appium的图标。安装后添加环境变量,验证方法同上。
到这里环境已经安装好了,但是在应用的时候还是会踩到坑,我在这里写一下我踩到的坑:
1.打开uiautomatorviewer.bat出现
解决办法如下:
打开 uiautomatorviewer.bat,找到 uiautomatorviewer.bat 文件最后一行:
call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=%prog_dir%" -jar %jarpath% %*
将其中的binddir=%prog_dir%
修改为 SDK 的 platform-tools 所在路径(我的 SDK 路径为:D:\AndroidSDK\platform-tools
)。
修改后的最后一行为:
call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=D:\AndroidSDK\platform-tools" -jar %jarpath% %*
再次启动工具 uiautomatorviewer
2.用uiautomatorviewer.bat获取手机界面时,报Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist! Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!,这是因为appium正在运行导致的,关掉appium就可以了。
3.由于工作中涉及到的电脑较多,且多人操作,有一台笔记本中就多次安装了adb.exe,这样会遇到appium在不停的kill adb.exe.的进程,不停的打开adb.exe。后来发现是安装android-studio时自己手贱的往对应文件夹下放了一个含有adb.exe的文件夹。
4.一台台式机遇到的问题和上面很类似,appium在不停的杀adb.exe的进程,纠结了半天没发现原因,重启了一下appium和pycharm就解决问题了。