开始学习appium+python,环境搭建通了,但是连接虚拟设备报错adb server is out of date.killing...
通过度娘,找到如下文章,解决。
前提:
1,搭建好环境
2,启动好android虚拟机,avd。设置永不待机。
3,驱动好appium
cmd下,输入appium
C:\Users\Administrator>appium
info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d)
info: Appium REST http interface listener started on 0.0.0.0:4723
info: Console LogLevel: debug
开始测试:
新建python工程,输入如下代码
import os import time from appium import webdriver desired_caps ={ 'platformName':'Android', 'platformVersion':'4.3.1', 'deviceName':'Android Emulator', #'deviceName':'Android Emulator', 'appPackage':'com.android.calculator2', 'appActivity':'.Calculator' } print u'123' driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
可能分析:出错的原因是adb的端口被其他程序的进程占领了,所以要做的就是找到并kill该进程。
1,在cmd中执行adb nodaemon server,查看adb的端口号是多少,一般情况下是5037(why?应该软件使用的端口号是固定的),如下图
2
再执行netstat -ano | findstr "5037" ,会看到如下类似的情形:
这里稍微解释一下,显示的从左到右的意思分别是,连接类型(TCP)、本地地址和端口、外部地址和端口、连接状态、进程的PID号。这里有两个进程占据着5037端口,其中一个占据的是本地的5037端口,另外一个占据的是外部的5037端口,要干掉的当然就是那个本地的PID为240的端口啦!
3
CTRL+ALT+DEL唤出任务管理器。点击进程,现在要找的是PID为240的进程。有时候可能会发现任务管理器里没有进程PID的信息显示,这时候只要点击任务管理器的查看-->选择列,如下图,然后把PID勾选上即可。这时候再次查看当前进程的PID,把PID为240的进程kill掉。然后再运行adb命令就顺顺利利啦!