Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

小米mix2 android8.0 permissionPatterns 发现只可以自动允许android-unlock 其它两个的提示不可以 #31

Open
Archer456 opened this issue Mar 13, 2018 · 6 comments
Assignees

Comments

@Archer456
Copy link

小米mix2 真机 android8.0

环境是IDEA wd.java 2.0.20
脚本里写了
该句
public void setUp() throws Exception {
Logger logger = Logger.getLogger(getClass());
JSONObject porps = new JSONObject();
porps.put("autoAcceptAlerts", true);
porps.put("javascriptEnabled", true);

  //porps.put("deviceName", "iPhone 6s"); //ios 需要指定设备名
    porps.put("platformName", "Android"); // Android or ios
    porps.put("version", ""); //系统版本 ios需要指定系统版本

  //porps.put("udid", "your udid"); //ios udid唯一设备识别符
  //porps.put("bundleId", "zx.ios-app-bootstrap"); //ios bundleId App应用标识符

    //porps.put("app", "./app/acp_android_v4_1_7-233611.apk");
    porps.put("package", "com.sinacp.ggaicai");//appPackage 启动包名
    porps.put("activity", "com.aicai.pluginhost.activity.MainActivity");//aappActivity 启动类名
	porps.put("permissionPatterns","[\\\"继续安装\\\",\\\"下一步\\\",\\\"好\\\",\\\"允许\\\",\\\"确定\\\",\\\"我知道\\\"]");
		
	JSONObject desiredCapabilities = new JSONObject();
	desiredCapabilities.put("desiredCapabilities", porps);
	driver.initDriver(desiredCapabilities);

}

模拟器可通过,小米mix2 发现会按顺序提示安装
1UiAutoMator sample
2com.macaca.android.testing.test
3 android-unlock

经过反复测试,发现 头两个 1 和 2 会报错 我等到延时提示的最后3s 点击 继续安装 到第3个android-unlock 可以发现 继续安装 并点掉 。进入启动app后,遇到提示读取联系人权限 也可以 发现 “允许”并点掉。

不知道 为什么头两个1UiAutoMator sample
2com.macaca.android.testing.test 不可以发现并自动点掉。

以下日志,遇到第1个UiAutoMator sample 就报错了, 然后我最后3s 手动点击的,再往后又手动点了
2com.macaca.android.testing.test 第3个 android-unlock是程序自己发现并点掉的,然后启动app 自动点掉了 “允许”

`>> responseHandler.js:11:12 [master] pid:19460 Recieve HTTP Request from Client[2018-03-13 13:10:41]: method: POST url: /wd/hub/session, jsonBody: {"desiredCapabilities":{"package":"com.sinacp.ggaicai","activity":"com.aicai.pluginhost.activity.MainActivity","permissionPatterns":"[\"继续安装\",\"下一步\",\"好\",\"允许\",\"确定\",\"我知道\"]","javascriptEnabled":true,"platformName":"Android","version":"","autoAcceptAlerts":true}}

session.js:47:10 [master] pid:19460 Creating session, sessionId: dbad83dd-829f-4e93-8e76-9797557eb871.
checking permissionPatterns: ["继续安装","下一步","好","允许","确定","我知道"]
uiautomator-client.js:31:12 [master] pid:19460 Error: Command failed: /opt/android-sdk-linux/platform-tools/adb -s 45806625 shell "pm clear "com.macaca.android.testing""
Failed

at ChildProcess.exithandler (child_process.js:275:12)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)

uiautomator-client.js:62:14 [master] pid:19460 INSTRUMENTATION_STATUS: numtests=1
INSTRUMENTATION_STATUS: stream=
com.macaca.android.testing.UIAutomatorWD:
INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
INSTRUMENTATION_STATUS: test=MacacaTestRunner
INSTRUMENTATION_STATUS: class=com.macaca.android.testing.UIAutomatorWD
INSTRUMENTATION_STATUS: current=1
INSTRUMENTATION_STATUS_CODE: 1

uiautomator-client.js:62:14 [master] pid:19460 INSTRUMENTATION_STATUS: stream=
UIAutomatorWD->http://localhost:9005<-UIAutomatorWD

UIAutomatorWD http server ready
uiautomator-client.js:62:14 [master] pid:19460 INSTRUMENTATION_STATUS_CODE: 0

macaca-android.js:303:10 [master] pid:19460 start app with: {"package":"com.sinacp.ggaicai","activity":"com.aicai.pluginhost.activity.MainActivity"}
responseHandler.js:49:14 [master] pid:19460 Send HTTP Respone to Client[2018-03-13 13:11:15]: {"sessionId":"dbad83dd-829f-4e93-8e76-9797557eb871","status":0,"value":"{"package":"com.sinacp.ggaicai","activity":"com.aicai.pluginhost.activity.MainActivity","permissionPatterns":"[\\\"继续安装\\\",\\\"下一步\\\",\\\"好\\\",\\\"允许\\\",\\\"确定\\\",\\\"我知道\\\"]","javascriptEnabled":true,"platformName":"Android","version":"","autoAcceptAlerts":true}"}
responseHandler.js:11:12 [master] pid:19460 Recieve HTTP Request from Client[2018-03-13 13:11:21]: method: POST url: /wd/hub/session/dbad83dd-829f-4e93-8e76-9797557eb871/element, jsonBody: {"using":"id","value":""}
proxy.js:55:14 [master] pid:19460 Proxy: /wd/hub/session/:sessionId/accept_alert:POST to http://127.0.0.1:9005/wd/hub/session/:sessionId/accept_alert:POST with body: {}
proxy.js:85:20 [master] pid:19460 Got response with status 200: {"sessionId":null,"status":0}
proxy.js:55:14 [master] pid:19460 Proxy: /wd/hub/session/dbad83dd-829f-4e93-8e76-9797557eb871/element:POST to http://127.0.0.1:9005/wd/hub/session/:sessionId/element:POST with body: {"using":"id","value":""}
proxy.js:85:20 [master] pid:19460 Got response with status 200: {"sessionId":"dbad83dd-829f-4e93-8e76-9797557eb871","value":{"ELEMENT":"1"},"status":0}
session.js:109:14 [master] pid:19460 Send HTTP Respone to Client[2018-03-13 13:11:21]: {"sessionId":"dbad83dd-829f-4e93-8e76-9797557eb871","value":"{"ELEMENT":"1"}","status":0}
responseHandler.js:11:12 [master] pid:19460 Recieve HTTP Request from Client[2018-03-13 13:11:21]: method: POST url: /wd/hub/session/dbad83dd-829f-4e93-8e76-9797557eb871/element/1/click, jsonBody: {}
proxy.js:55:14 [master] pid:19460 Proxy: /wd/hub/session/:sessionId/accept_alert:POST to http://127.0.0.1:9005/wd/hub/session/:sessionId/accept_alert:POST with body: {}
proxy.js:85:20 [master] pid:19460 Got response with status 200: {"sessionId":":sessionId","status":0}
`

cmd@TR:~$ macaca doctor

macaca-doctor version: 2.0.7

Node.js checklist:

node env: /opt/nodejs/bin/node
node version: v8.9.4

Android checklist:

JAVA version is 1.8
JAVA_HOME is set to /usr/lib/jvm/java-8-oracle
ANDROID_HOME is set to /opt/android-sdk-linux
Platforms is set to /opt/android-sdk-linux/platforms/android-26
ADB tool is set to /opt/android-sdk-linux/platform-tools/adb
gradle is installed, version: 3.5

Installed driver list:

android: 2.0.46
chrome: 1.0.7
electron: 1.1.19

@Archer456
Copy link
Author

Archer456 commented Mar 13, 2018

https://github.com/macaca-sample/sample-java/blob/master/src/test/java/macaca/client/AndroidSampleTest.java

我down下 这个样例, 也加上该句

porps.put("permissionPatterns","[\\\"继续安装\\\",\\\"下一步\\\",\\\"好\\\",\\\"允许\\\",\\\"确定\\\",\\\"我知道\\\"]");

还是用以上真机跑 先去设置 应用里 卸载干净 以上三个
1UiAutoMator sample
2com.macaca.android.testing.test
3 android-unlock
4 Bootstrap
现象依旧,1和2 只能等到 最后3s 手工点掉,最后的 3 和 4 都是uiautomatorwd 捕获并自动点掉的。

弹窗文本我也看了 都是 继续安装 拒绝

@Archer456
Copy link
Author

`session.js:47:10 [master] pid:19460 Creating session, sessionId: dbad83dd-829f-4e93-8e76-9797557eb871.
checking permissionPatterns: ["继续安装","下一步","好","允许","确定","我知道"]
uiautomator-client.js:31:12 [master] pid:19460 Error: Command failed: /opt/android-sdk-linux/platform-tools/adb -s 45806625 shell "pm clear "com.macaca.android.testing""
Failed

at ChildProcess.exithandler (child_process.js:275:12)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)`

从遇到的错误日志来看,是权限检查checking permissionPatterns: ["继续安装","下一步","好","允许","确定","我知道"]
后 执行 adb -s 45806625 shell "pm clear "com.macaca.android.testing""
Failed 失败 不知道内部判断逻辑 为什么要先 pm clear 掉这东西

@Archer456 Archer456 changed the title 小米mix2 android8.0 发现只可以自动允许android-unlock 其它两可的提示不可以 小米mix2 android8.0 permissionPatterns 发现只可以自动允许android-unlock 其它两个的提示不可以 Mar 13, 2018
@Archer456
Copy link
Author

这是win10 的 日志内容 稍微有点提示的不太一样.

@Archer456
Copy link
Author

image

@qichuan
Copy link
Contributor

qichuan commented Mar 13, 2018

日志里提到 macaca 包签名不一致,应该是在另一台 PC 跑过。建议把旧包卸载了再重新安装一次。

@Archer456
Copy link
Author

这个就是手机里清理过4个安装之后的日志了,所以我也奇怪已经卸载了为什么是提示这种。
上边的ubuntu+真机的是百分百重复几次都是那个日志的。你看下吧。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants