Appium+Python+Genymotion,菜鸟demo时遇到的坑

来源:互联网 发布:网页文字游戏源码 编辑:程序博客网 时间:2024/05/23 18:59

话说没有任何经验的情况下,自动化测试学习起来还真是麻烦不少。。基本睁眼瞎的状态。

今天按照虫师大大的配置教程贴,把Appium+Python的环境建起来了。并不是完全一样,到建立虚拟机的步骤,我用的是朋友推荐给我的genymotion。也没用过其他模拟器,不了解有何异同,只在网上看到别人说这个的速度不错。然后就是demo,用的是那个调用系统自带计算器的例子,在pycharm一运行才发现版本号、deviceName这些我只是照搬还没改(也是没谁了)。开始遇到坑了啊。从今天起打算开帖子用来记录探索期间遇到的坑以及解决方案,可能五花八门没有什么特定类别,凑合看看吧=-=


问题:无法获取deviceName,端口5037被占用

从网上查到,需要在命令行运行以下shell命令获取deviceName

adb devices -l

然而输入回车后,出现以下错误

C:\Users\wuhuo>adb devices -ladb server is out of date.  killing...ADB server didn't ACK* failed to start daemon *error:

朋友叫我输入adb start-server,结果是这样婶儿的

adb server is out of date.  killing...ADB server didn't ACK* failed to start daemon *

网上查了是因为端口有冲突,有其他进程占用了5037这个端口。(可以用adb nodaemon server 这个命令查看端口)


解决方法:

用以下命令查看5037端口号的应用

netstat -ano | find "5037"
从左至右依次是连接类型、本地地址:端口、外部地址:端口、连接状态、进程的PID

个人理解,应该杀掉的是本地端口为5037的那个进程。(20170319注:看过多个别人杀进程的帖子,证实想法正确)

看最后一列获得进程的PID,常规方法是使用以下命令杀掉它:

taskkill /pid xxx

但对于我的情况来说,杀完再find,它又出现了,喵喵喵?而且再细看一下,这些进程全部都是genymotion目录中tools文件夹下的adb.exe,按我的理解不该杀啊。

(20170320注:实际上很多软件都包括adb.exe,像豌豆荚及各种手机助手。如果它们启动了,也会占用这个端口。信息来自网上找到appium视频教程)

因为已经深夜了,第二天继续研究。今日查到stackoverflow上一个帖子:

http://stackoverflow.com/questions/5092542/adb-server-is-out-of-date

答主真是一针见血。。把genymotion的adb设置为自己的adb之后,问题解决了。

Genymotion默认用的是第一个选项,现改为custom,然后选择自己的sdk文件夹



再输入adb devices -l

不过这里仍然疑惑不解,为什么别人的地址是数字字母夹杂的一串码,我的是地址?

(20170320注:今日看了一个视频教程,讲师说如果是虚拟机会这样显示,如果是真机,会显示成串码)

C:\Users\wuhuo>adb devices -lList of devices attached192.168.239.101:5555   device product:vbox86p model:Google_Nexus_6P___6_0_0___API_23___1440x2560 device:vbox86p

设置这个的时候顺便还发现自己没有下载build-tool,于是又回到SDK manager下载了build-tool。不过看到build-tool还有这么多版本,目前还不太懂有什么区别。

(20170320注:似乎是根据API版本来的,有待考证)


顺便记录下目前好用的代理



把查到的deviceName放到脚本里,竟然成功了!小白真是热泪盈眶。。

突然好期待新的大坑出现0-0

0 0
原创粉丝点击