【问题标题】:Appium isn’t able to detect activities from my appAppium 无法检测到我的应用程序中的活动
【发布时间】:2019-01-31 05:35:39
【问题描述】:

这是我在 Android 上使用 Mac 上的 Appium 时遇到的问题。

Appium 无法从我的应用中检测到活动。使用此应用的另一个版本检测到这些正常,我已向开发人员确认我使用了正确的应用名称和活动名称。

我在 Appiumgui 中打开我的应用程序来检查活动名称,但没有显示任何活动名称。在旧版本中是这样。

这是我尝试使用 Appium Inspector 运行时的日志(应用名称已被替换)。

[Appium] 欢迎使用Appium v​​1.8.1 [Appium] Appium REST http 接口 监听器开始于 0.0.0.0:4723 [HTTP] --> GET /wd/hub/sessions [HTTP] {} [MJSONWP] 使用 args 调用 AppiumDriver.getSessions():[] [MJSONWP] 使用 driver.getSessions() 结果响应客户端:[] [HTTP] POST /wd/hub/session [HTTP] {"desiredCapabilities":{"appActivity":"com.appname.appname.ActivityName","appPackage":"com.appname.appname","automationName":"UiAutomator2","deviceName":"Moto 乙 (4) 加号","noReset":true,"platformName":"Android","platformVersion":"7.1.1","newCommandTimeout":0,"connectHardwareKeyboard":true}} [MJSONWP] 使用 args 调用 AppiumDriver.createSession(): [{"appActivity":"com.appname.appname.ActivityName","appPackage":"com.appname.appname","automationName":"UiAutomator2","deviceName":"Moto 乙 (4) 加号","noReset":true,"platformName":"Android","platformVersion":"7.1.1","newCommandTimeout":0,"connectHardwareKeyboard":true},null,null] [BaseDriver] 事件“newSessionRequested”记录在 1535127815297 (12:23:35 GMT-0400 (EDT)) [Appium] 创建新的 AndroidUiautomator2Driver (v1.12.0) 会话 [Appium] 功能: [Appium] appActivity: com.appname.appname.ActivityName [Appium] appPackage:com.appname.appname [Appium] 自动化名称:UiAutomator2 [Appium] deviceName: Moto E (4) Plus [Appium] noReset: true [Appium] 平台名称:Android [Appium] 平台版本:7.1.1 [Appium] newCommandTimeout: 0 [Appium] connectHardwareKeyboard: true [BaseDriver] 使用 MJSONWP 所需功能创建会话: {"appActivity":"com.powerle... [BaseDriver] 以下功能 已提供,但 appium 无法识别: 连接硬件键盘。 [BaseDriver] 使用会话 ID 创建的会话: 0447ba48-fa3f-4c2d-b4cb-c17e2aaa2219 [AndroidDriver] 获取 Java version [AndroidDriver] Java 版本为:10.0.1 [ADB] 检查是否 adb 存在 [ADB] 在下找到 1 个“构建工具”文件夹 '/Users/user/Library/Android/sdk'(最新优先):[ADB] /Users/user/Library/Android/sdk/build-tools/27.0.3 [ADB] 使用 adb 来自 /Users/user/Library/Android/sdk/platform-tools/adb [AndroidDriver] 检索设备列表 [ADB] 试图找到一个 已连接的 android 设备 [ADB] 正在连接设备... [ADB] 1 device(s) connected [AndroidDriver] 寻找带有 Android 的设备 '7.1.1' [ADB] 将设备 ID 设置为 ZY22495WLC [ADB] 获取设备 平台版本 [ADB] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell getprop ro.build.version.release' [ADB] 当前 设备属性“ro.build.version.release”:7.1.1 [AndroidDriver] 使用设备:ZY22495WLC [ADB] 设置设备 ID 为 ZY22495WLC [ADB] 运行'/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell getprop ro.build.version.sdk' [ADB] 当前设备 属性“ro.build.version.sdk”:25 [ADB] 设备 API 级别:25 [AndroidDriver] 没有应用发送,不解析包/活动 [ADB] 获取设备平台版本 [ADB] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell getprop ro.build.version.release' [ADB] 当前 设备属性“ro.build.version.release”:7.1.1 [ADB] 正在运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell wm size' [ADB] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell wm density' [ADB] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell getprop ro.product.model' [ADB] 当前设备 属性 'ro.product.model': Moto E (4) Plus [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell getprop ro.product.manufacturer' [ADB] 当前设备 属性“ro.product.manufacturer”:摩托罗拉 [ADB] 设备 API 级别: 25 [ADB] 运行'/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell am force-stop io.appium.uiautomator2.server' [ADB] 检查应用程序证书 /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v1.12.0.apk [ADB] 使用来自的 apksigner /Users/user/Library/Android/sdk/build-tools/27.0.3/apksigner [亚行] 开始 '/Users/user/Library/Android/sdk/build-tools/27.0.3/apksigner' 与 参数 '验证,--打印证书,/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v1.12.0.apk' [亚行] '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v1.12.0.apk' 已经签署。 [ADB] 检查应用程序证书 /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk [亚行] 启动 '/Users/user/Library/Android/sdk/build-tools/27.0.3/apksigner' 与 参数 '验证,--打印证书,/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' [亚行] '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' 已经签署。 [ADB] 获取安装状态 io.appium.uiautomator2.server [ADB] 正在运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell pm list packages io.appium.uiautomator2.server' [ADB] 应用程序已安装 [ADB] 获取包信息 'io.appium.uiautomator2.server' [ADB] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell dumpsys 包 io.appium.uiautomator2.server'【亚行】 检查 aapt 是否存在 [ADB] 使用 aapt from /Users/user/Library/Android/sdk/build-tools/27.0.3/aapt [ADB] 安装 'io.appium.uiautomator2.server' 包不需要 upgrade ('1.12.0' >= '1.12.0') [ADB] 获取安装状态 io.appium.uiautomator2.server.test [ADB] 正在运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell pm list packages io.appium.uiautomator2.server.test' [ADB] 应用程序已安装 [ADB] 获取包信息 'io.appium.uiautomator2.server.test' [ADB] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell dumpsys 包 io.appium.uiautomator2.server.test' [ADB] 无法读取的版本代码 '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' 和/或 'io.appium.uiautomator2.server.test' [ADB] 无法读取版本 的名字 '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' 和/或“io.appium.uiautomator2.server.test”。假设正确的应用程序 版本已安装 [UiAutomator2] 等待长达 20000 毫秒 仪器仪表 'io.appium.uiautomator2.server.test/android.support.test.runner.AndroidJUnitRunner' 可用 [ADB] 运行中 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell pm list instrumentation' [UiAutomator2] 仪器仪表 'io.appium.uiautomator2.server.test/android.support.test.runner.AndroidJUnitRunner' 可用 [ADB] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC 等待设备' [ADB] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell echo ping' [AndroidDriver] 将设置 apk 推送到 设备... [ADB] 获取 io.appium.settings [ADB] 的安装状态 运行'/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell pm list packages io.appium.settings' [ADB] App is 已安装 [ADB] 获取“io.appium.settings”的包信息 [ADB] 运行'/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell dumpsys package io.appium.settings' [ADB] 安装的“io.appium.settings”包不需要升级 ('2.3.0' >= '2.3.0') [亚行] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell ps' [AndroidDriver] io.appium.settings 已经是 跑步。无需重置其权限。 [ADB] 设备 API 级别:25 [ADB] 正在运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell appops 设置 io.appium.settings android:mock_location allow' [AndroidDriver] setDeviceLanguageCountry 需要语言或 国家。 [AndroidDriver] 得到语言:'未定义'和国家: 'undefined' [Logcat] 启动 logcat 捕获 [AndroidDriver] 推送 解锁助手应用到设备... [ADB] 获取安装状态 io.appium.unlock [ADB] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell pm list packages io.appium.unlock' [ADB] App is 已安装 [ADB] 获取“io.appium.unlock”的包信息 [ADB] 运行'/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell dumpsys package io.appium.unlock' [ADB] 已安装 'io.appium.unlock' 包不需要升级('2.0.0' >= '2.0.0') [UiAutomator2] 将 UiAutomator2 服务器端口 6790 转发到 8200 [ADB] 转发系统:8200 到设备:6790 [ADB] 正在运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC forward tcp:8200 tcp:6790' [ADB] Running '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell rm -rf /data/local/tmp/strings.json' [UiAutomator2] 没有应用程序功能。假设它已经在设备上 [ADB] 检查 未定义 [ADB] '未定义' 的应用程序证书不存在 [ADB] 正在运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell am force-stop io.appium.uiautomator2.server' [UiAutomator2] 启动 uiautomator2 服务器 1.12.0 [UiAutomator2] 使用 UIAutomator2 服务器 '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v1.12.0.apk' 并从 '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' [UiAutomator2] 运行命令:'adb -s ZY22495WLC shell am instrument -w io.appium.uiautomator2.server.test/android.support.test.runner.AndroidJUnitRunner' [UiAutomator2] UiAutomator2 在线等待长达 20000 毫秒... [JSONWP 代理] 代理 [GET /status] 到 [GET http://localhost:8200/wd/hub/status] 没有正文 [JSONWP 代理] 代理 [GET /status] 到 [GET http://localhost:8200/wd/hub/status] 没有正文 [JSONWP 代理] 代理 [GET /status] 到 [GET http://localhost:8200/wd/hub/status] 没有正文 [JSONWP 代理] 代理 [GET /status] 到 [GET http://localhost:8200/wd/hub/status] 没有正文 [JSONWP 代理] 代理 [GET /status] 到 [GET http://localhost:8200/wd/hub/status] 没有正文 [JSONWP 代理] 得到 状态为 200 的响应: "{\"sessionId\":\"SESSIONID\",\"status\":0,\"value\":\"Status 调用\"}" [JSONWP 代理] 代理 [POST /session] 到 [POST http://localhost:8200/wd/hub/session] 与正文: {"desiredCapabilities":{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false, "警告":{},"desired":{"appActivity":"com.appname.appname.ActivityName","appPackage":"com.appname.appname","automationName":"UiAutomator2","deviceName": “摩托 乙 (4) 加号","noReset":true,"platformName":"Android","platformVersion":"7.1.1","newCommandTimeout":0,"connectHardwareKeyboard":true},"appActivity":"com.appname.appname .ActivityName","appPackage":"com.appname.appname","automationName":"UiAutomator2","deviceName":"ZY22495WLC","noReset":true,"platformName":"Android","platformVersion": "7.1.1","newCommandTimeout":0,"connectHardwareKeyboard":true,"deviceUDID":"ZY22495WLC","deviceScreenSize":"720x1280","deviceScreenDensity":320,"deviceModel":"Moto E (4) Plus","deviceManufacturer":"motorola","deviceApiLevel":25}} [JSONWP 代理] 得到状态为 200 的响应: {"sessionId":"1bd90fd8-f4e1-4cc9-9d0b-11f98f6cb22c","status":0,"value":"已创建 会话”} [ADB] 运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell dumpsys window' [AndroidDriver] 屏幕已经 已解锁,无所事事 [UiAutomator2] UiAutomator2 没有启动 我们正在等待的活动, 'com.appname.appname/com.appname.appname.ActivityName'。启动它 我们自己 [ADB] 设备 API 级别:25 [ADB] 正在运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell am start -W -n com.appname.appname/com.appname.appname.ActivityName -S' [ADB] 我们 试图启动一个不存在的活动,重试 '.com.appname.appname.ActivityName' 活动名称 [ADB] 设备 API 级别:25 [ADB] 正在运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell am start -W -n com.appname.appname/.com.appname.appname.ActivityName -S' [UiAutomator2] 删除 UiAutomator2 会话 [UiAutomator2] 删除 UiAutomator2 服务器会话 [JSONWP 代理] 代理 [DELETE /] 到 [删除 http://localhost:8200/wd/hub/session/1bd90fd8-f4e1-4cc9-9d0b-11f98f6cb22c] 没有正文 [JSONWP 代理] 得到状态为 200 的响应: "{\"sessionId\":\"1bd90fd8-f4e1-4cc9-9d0b-11f98f6cb22c\",\"状态\":0,\"值\":\"会话 已删除\"}" [ADB] 正在运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC shell am force-stop com.appname.appname' [UiAutomator2] [UIAutomator2] io.appium.uiautomator2.server.test.AppiumUiAutomator2Server:. [UiAutomator2] [UIAutomator2] 时间:5.017 [UiAutomator2] [UIAutomator2] OK(1 次测试)[Logcat] 停止 logcat 捕获 [ADB] 删除转发端口套接字连接:8200 [ADB] 正在运行 '/Users/user/Library/Android/sdk/platform-tools/adb -P 5037 -s ZY22495WLC forward --remove tcp:8200' [BaseDriver] 事件 'newSessionStarted' 记录在 1535127834971 (12:23:54 GMT-0400 (EDT)) [MJSONWP] 运行命令遇到内部错误:错误:不能 启动“com.appname.appname”应用程序。原始错误:不能 启动“com.appname.appname”应用程序。原始错误:活动 用于启动应用程序的名称“.com.appname.appname.ActivityName”没有 存在或无法启动!确保它存在并且是可启动的 ADB.callee$0$0$ 的活动 [MJSONWP] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-adb/lib/tools/apk-utils.js:125:11) [MJSONWP] 在 tryCatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40) [MJSONWP] 在 GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22) [MJSONWP] 在 GeneratorFunctionPrototype.prototype.(匿名函数) [作为投掷] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21) [MJSONWP] 在 GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37) [MJSONWP] 在 [HTTP] 获取 /wd/hub/session/50f426de-f038-418a-98cf-617e44eec8af/source [HTTP] {} [HTTP]

【问题讨论】:

  • 您是否可以通过传递应用程序包和活动名称在 appium 检查器中查看您的应用程序...?\
  • 不,阿米特。我不能。这适用于旧版本的应用程序,但不适用于当前版本。

标签: android macos appium


【解决方案1】:

事实证明,我们有多个版本的应用程序具有不同的应用程序包名称,我和开发人员之间对此存在误解。一旦我为我需要的版本使用了正确的名称,一切都会顺利进行。

【讨论】:

    猜你喜欢
    • 2018-06-17
    • 2017-09-26
    • 2018-04-09
    • 1970-01-01
    • 2018-05-26
    • 2015-07-26
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多