Appium appium 的 GUI 版本中 stop on start 在命令行方式下应该怎么用

Jane · 2016年07月21日 · 最后由 Jane 回复于 2016年07月22日 · 1804 次阅读

已解决,方法见后面

我使用 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 这个命令还是没有用对,后面有时间再仔细研究一下吧,如果有人知道比较好的解决方案的,欢迎继续回帖,谢谢。

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

共收到 10 条回复 时间 点赞

点击 launch 后第一条命令就是展现当前启动 appium 的命令。你分别勾选和不勾选各启动一次,看增加了哪个参数?

Monkey 内容不符合版规屏蔽此话题 07月21日 13:31

请使用 markdown

Jane #4 · 2016年07月21日 Author

@lihuazhang@seveniruby@monkey 帮我恢复一下哦,谢谢

Jane #5 · 2016年07月21日 Author

#1 楼 @chenhengjie123
勾上的时候,如下

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’ 的参数,然后我在启动的时候就没有加这个参数,结果就不行

Jane #6 · 2016年07月21日 Author

@lihuazhang@seveniruby@monkey 帮我恢复一下,谢谢

你的问题已经解决了吧,已经找到这个选项对应的参数名称了。

具体参数的说明你去查下官方文档吧。

Jane #8 · 2016年07月22日 Author

#7 楼 @chenhengjie123 没有解决哦,理论上这个参数应该默认不用加就是对的,但实际上的结果却不一致,所以还不知道怎么弄

#8 楼 @janec 你和开发确认下 SplashActivity 是不是就是每次打开应用必开的 Activity ?从你报错信息来看,实际启动应用时,启动的是 .ui.tab.MainTabActivity 。

Jane #10 · 2016年07月22日 Author

#9 楼 @chenhengjie123 我确定每次启动的都是 SplashActivity。而且我使用 Gui 版本来启动 appium sever 的时候勾选上那个 stop on start 就是没问题的,看日志也是首先获取到的就是 SplashActivity;不勾上的话就和命令行报相同的错误。这个就相当奇怪,我百思不得其解啊😭

Jane #11 · 2016年07月22日 Author

#9 楼 @chenhengjie123 我已经解决了哈,取巧了一下,把 GUI 下面的指令直接丢过来用 OK 了,没有使用 appium 这个指令,谢谢你的帮助哦

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册