appium学习之踩过的坑
搭建appium环境
环境搭建的步骤这边就不做详细介绍了,请大家参考另外一篇文章。
1.在安装完Android SDK后,需要安装安卓的模拟器,我这边选太多版本了,安装了4,5个小时才把这些装完。装完后去看SDK所在的盘,发现居然有70多个G!!!!难怪安装了这么久,凭实力坑了自己一把。其实安卓的模拟器,能尽量避免不用就不用,实在是太占内存了!如果真需要用,只需要装一个版本就可以了!我装完了后,去问我们的开发大神用的是哪个版本的模拟器,然后他们告诉我,他们一般不用模拟器,都是直接连真机,模拟器太卡了。我就只能呵呵了。。。。。
2.在输入命令行 adb命令的时候,老是强制关闭。查了半天原来是我的电脑装了360,360占用了adb的端口。把360卸了就好了。
3.环境搭建好了,就开始写代码。我用的测试机是oppo的,从网上找了一段代码去连接手机,发现老是连接报错。查了资料是包名和activity没有写对,但是我又不知道去哪里查。这个时候又要去求助开发大神了。开发大神告诉了我一个命令去查当前手机连接的包名和activity,在命令行输入以下命令:
adb shell dumpsys activity | findstr "mFocusedActivity"。对应关系参考下图:改了对应包名后,提示连接成功。这个时候不得不说开发大神还是挺好用的。。

4.连接手机成功后,发现每次去运行代码,都会提示让你装一个unlock和appium setting的apk,真的是很不方便啊!需要找到:appium的安装目录\appium\lib\devices\android\ android.js 这个文件,并注释掉下面三行代码:
//this.pushSettingsApp.bind(this), //this.pushUnlock.bind(this), //this.unlock.bind(this),
注释完成,在运行程序连接手机。就没提示安装了。
5.连接手机成功后,我这边就找了“赛宜居”app的登录做测试。从手机中找到app,并在APP中点击登录按钮这些还是挺顺利的。那么现在问题来了,在写测试案例的时候,需要一些获取app中的一些toast提示来判断结果。比如我们在测试登录的时候,如果用户名和密码为空,直接点击登录,应该提示什么,我们需要获取到这个提示信息来做判断。然后发现死活获取不到这个提示,问了开发,自己网上找了资料,也发了帖,还是没有得到解决。大多数的结果都是说,获取toast提示只支持appium1.5版本以上的。帖子下面有大神回复说,可以通过判断页面的标签来确定有没有登录成功,这种方法是可以去判断登录的结果,但是我觉得还是不够完善。准备装高一点的版本去试一下。去查了自己的appium的版本,是1.4.16的。想去把这个老版本卸了,进入控制面板去卸载程序,发现我居然有两个版本的appium。怎么回事呢?原来我通过npm装了个1.7.2版本,所以才有两个。成功卸了老版本后,再去查appium的版本,是1.7.2版本。再去运行代码,代码报错,原来是服务没启动。开始不知道可以直接通过命令行启动服务,或者通过下面这个工具开启服务。

(写到这里突然觉得自己的觉悟还是不够的,实力坑自己)因为不知道可以通过这种办法去启动服务,所以我直接卸了node.js重新装。注意:如果你们也遇到上的情况,通过以上两种方法启动服务没有成功,你可能也需要重新去安装的你appium了
6.重新安装node.js,并通过npm在线安装。安装好了node.js和npm后,执行以下命令在线安装 npm install -g appium@1.6.3 。再去查appium的版本,发现居然是1.6.5.。。然后再反复重新装了几次,都是1.6.5.再通过 npm uninstall -g appium 去卸载。发现还是有1.6.5.我就很纳闷了。不是卸载了吗?怎么还有。查了环境变量发现,原来我的电脑装了个32位的node。我一直在卸载安装64位的。把两个系统的node卸了重新安装appium@1.6.3 ,再去查,版本就对了。注意:如果卸载后安装不成功,需要你到安装目录下去删除你的nodes文件夹和nmp的文件夹,避免冲突最好是删除干净了再重新安装 在这里推荐个网站给大家参考:https://blog.csdn.net/darkmanno5/article/details/72795015
7.在npm install -g --production windows-build-tools 这一步的时候,如果你已经装好了python27,会去改改变你的python27文件夹里面的东西,或者是另外装一个python27版本,可能会导致你的python运行不成功。最好是装完这一步再去装python。
8.python运行appium代码时提示“WebDriverException: Message: Parameters were incorrect. We wanted {“required”:[“value”]} and you sent [“text”,”sessionId”,”id”,”value”]” 需要将对应 的selenium版本进行降级
暂时先写到这里,我环境已经安装成功了。需要去验证我的代码了。

浙公网安备 33010602011771号