已解决,方法见后面

我使用 dmg 安装完 appium 后,在环境变量设置变量

APPIUM_HOME=/Applications/Appium.app/Contents/Resources/node_modules/.bin

之后就可以使用命令行方式启动 appium 的 server 了

问题:
GUI 版本中有一个如图红框中的选项 stop on start ,我不知道对应到命令行方式应该使用什么参数。

不勾上这个设置,我每次执行 case 的时候都提示找不到. SplashActivity,log 如下:

2016-07-20 10:21:12:930 - [HTTP] <-- GET /wd/hub/status - - ms - - 
2016-07-20 10:21:12:962 - [debug] [ADB] Waiting for pkg: 'xxxxx' and activity: 'xxxxx.SplashActivity' to be focused
2016-07-20 10:21:12:963 - [debug] [ADB] Possible activities, to be checked: xxxxx.SplashActivity, .SplashActivity, .xxxxx.SplashActivity
2016-07-20 10:21:12:964 - [debug] [ADB] Getting focused package and activity
2016-07-20 10:21:12:965 - [debug] [ADB] Getting connected devices...
2016-07-20 10:21:12:988 - [debug] [ADB] 1 device(s) connected
2016-07-20 10:21:12:989 - [debug] [ADB] Running /Users/cy/Documents/ADT-Eclipse/sdk/platform-tools/adb with args: ["-P",5037,"-s","85GBBM9235WL","shell","dumpsys","window","windows"]
2016-07-20 10:21:13:045 - [debug] [ADB] Found package: 'xxxxx' and activity: '.ui.tab.MainTabActivity'
2016-07-20 10:21:13:046 - [debug] [ADB] Incorrect package and activity. Retrying.
2016-07-20 10:21:13:797 - [debug] [ADB] Getting focused package and activity
2016-07-20 10:21:13:798 - [debug] [ADB] Getting connected devices...

并且我对比了勾选上这个选项和不勾上时的 log,如下
勾上的时候:

Launching Appium with command: export ANDROID_HOME="/Users/cy/Documents/ADT-Eclipse/sdk"; '/Applications/Appium.app/Contents/Resources/node/bin/node' appium/build/lib/main.js --address "127.0.0.1" --port "4725" --pre-launch --debug-log-spacing --log-timestamp --log-level "debug" --local-timezone --automation-name "Appium" --platform-name "Android" --platform-version "5.0.1" --no-reset --app-pkg ""

不勾选上的时候:

Launching Appium with command: export ANDROID_HOME="/Users/cy/Documents/ADT-Eclipse/sdk"; '/Applications/Appium.app/Contents/Resources/node/bin/node' appium/build/lib/main.js --address "127.0.0.1" --port "4725" --pre-launch --debug-log-spacing --log-timestamp --log-level "debug" --local-timezone --automation-name "Appium" --platform-name "Android" --platform-version "5.0.1" --no-reset --dont-stop-app-on-reset --app-pkg ""

就是不勾选的时候多了一个 ‘--dont-stop-app-on-reset’ 的参数,然后我在启动的时候就没有加这个参数,结果就不行

有人知道要怎么解决么?

最后的解决方法,如图

把 command 后面的 copy 下来

export ANDROID_HOME="/Users/cy/Documents/ADT-Eclipse/sdk"; '/Applications/Appium.app/Contents/Resources/node/bin/node' appium/build/lib/main.js --address "127.0.0.1" --port "4725" --pre-launch --debug-log-spacing --log-timestamp --log-level "debug" --local-timezone --automation-name "Appium" --platform-name "Android" --platform-version "5.0.1" --app "" --no-reset --app-pkg "xxxx"

并且找到 appium/build/lib/main.js 的完整路径替换掉,然后把上面整段放到终端执行,这样就和 GUI 版本的一模一样的效果了。
这个地方也不算完全解决吧,只是取巧了,其实对于 appium 这个命令还是没有用对,后面有时间再仔细研究一下吧,如果有人知道比较好的解决方案的,欢迎继续回帖,谢谢。

再次也谢谢各位的热情相助哦😄


↙↙↙阅读原文可查看相关链接,并与作者交流