【发布时间】:2017-07-01 11:19:55
【问题描述】:
我使用了 windows 和 Eclips。
我为测试而写的以下课程:
公共类TestApp
{ AppiumDriver驱动;
@Test
public void testapp() throws MalformedURLException, InterruptedException
{
File app =new File(System.getProperty("user.dir")+"\\apks\\sigiriya-debug.apk");
// DesiredCapabilities capabilities = new DesiredCapabilities();
DesiredCapabilities capabilities =DesiredCapabilities.android();
//capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("deviceName","google-pixel-FA6C10301834");
capabilities.setCapability("platformVersion", "7.1.1");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("app", app.getAbsolutePath());
// capabilities.setCapability("appPackage", "com.whatsapp");
// capabilities.setCapability("appActivity", "com.whatsapp.Main");
// dr = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
// driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
// clicking
Thread.sleep(10000);
}
}
当我运行代码时,Apk 已安装到我的手机中。但测试失败,并在 appium 控制台中出现以下错误日志
Appium 中的日志:
info: --> POST /wd/hub/session {"desiredCapabilities":{"app":"C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool.testmob\apks\sigiriya-debug.apk ","platformVersion":"7.1.1","browserName":"android","platformName":"Android","version":"","deviceName":"google-pixel-FA6C10301834","platform" :“安卓”}} 信息:客户端用户代理字符串:Apache-HttpClient/4.3.3 (java 1.5) info: [debug] 提供了以下所需功能,但 appium 无法识别。它们将被传递到此服务器上运行的任何其他服务。 :版本,平台 信息:[调试] 没有 appActivity 所需的功能或服务器参数。从 apk 解析。 信息:[调试] 没有 appPackage 所需的功能或服务器参数。从 apk 解析。 信息:[调试] 使用来自所需上限的本地应用程序:C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool.testmob\apks\sigiriya-debug.apk 信息:[调试] 创建新的 appium 会话 622e973b-f97e-4961-8c0b-c79e13067803 信息:启动 android appium 信息:[调试] 获取 Java 版本 信息:Java 版本为:1.8.0_101 info: [debug] 检查 adb 是否存在 信息:[调试] 使用来自 C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe 的 adb 信息:[调试] 从应用程序清单解析包和活动 info: [debug] 检查 aapt 是否存在 信息:[调试] 使用来自 C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 的 aapt 信息:[调试] 从清单中提取包和启动活动。 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 转储徽章 C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool .testmob\apks\sigiriya-debug.apk 信息:[调试] 徽章包:com.pearsoned.sigiriya 信息:[调试] 徽章行为:com.pearsoned.sigiriya.view.activity.ActivityDecksView 信息:[调试] 解析的包和活动是:com.pearsoned.sigiriya/com.pearsoned.sigiriya.view.activity.ActivityDecksView 信息:[调试] 使用快速重置?真的 信息:[调试] 为会话准备设备 info: [debug] 检查应用程序是否实际存在 信息:检索设备 信息:[调试] 尝试查找已连接的 android 设备 信息:[调试]正在连接设备... 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe 设备 信息:[调试] 1 个设备已连接 信息:找到设备FA6C10301834 信息:[调试] 将设备 ID 设置为 FA6C10301834 信息:[调试] 等待设备准备好并响应 shell 命令(超时 = 5) info: [debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 等待设备 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "echo 'ready'" 信息:[调试] 启动 logcat 捕获 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "getprop ro.build.version.sdk" 信息:[调试] 设备处于 API 级别 25 信息:设备 API 级别为:25 信息:[调试]为语言提取字符串:默认 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "getprop persist.sys.language" 信息:[调试] 当前设备 persist.sys.language: 信息:[调试] java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\appium_apk_tools.jar" "stringsFromApk" "C:\Users\uwickdi\workspace\Mobile \eselenium.liverPool.testmob\apks\sigiriya-debug.apk" "C:\Users\uwickdi\AppData\Local\Temp\com.pearsoned.sigiriya" info: [debug] 从转换后的 strings.json 中读取字符串 信息:[调试]将语言设置为默认值 info: [debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 push "C:\Users\uwickdi\AppData\Local\Temp\com. pearsoned.sigiriya\strings.json" /data/local/tmp info: [debug] 检查 aapt 是否存在 信息:[调试] 使用来自 C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 的 aapt 信息:[调试] 从清单中检索进程。 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 转储 xmltree C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool .testmob\apks\sigiriya-debug.apk AndroidManifest.xml 信息:[调试] 将应用进程设置为:com.pearsoned.sigiriya 信息:[调试] 由于服务器未使用 --full-reset 启动,因此未卸载应用程序 信息:[调试] 检查 C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool.testmob\apks\sigiriya-debug.apk 的应用程序证书。 信息:[调试] 执行 cmd:java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\verify.jar" C:\Users\uwickdi\workspace\Mobile\ eselenium.liverPool.testmob\apks\sigiriya-debug.apk 信息:[调试] 应用程序已签名。 信息:[调试] Zip 对齐 C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool.testmob\apks\sigiriya-debug.apk info: [debug] 检查 zipalign 是否存在 信息:[调试] 使用 C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\zipalign.exe 中的 zipalign 信息:[调试] Zip-aligning apk。 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\zipalign.exe -f 4 C:\Users\uwickdi\workspace\Mobile\eselenium。 liverPool.testmob\apks\sigiriya-debug.apk C:\Users\uwickdi\AppData\Local\Temp\117113-3596-12b9r95\appium.tmp 信息:[调试] 应用程序的 MD5 为 8ded8f0bf024cef65fdef392e13505bb 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "ls /data/local/tmp/8ded8f0bf024cef65fdef392e13505bb.apk" 信息:[调试] 获取 com.pearsoned.sigiriya 的安装状态 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "getprop ro.build.version.sdk" 信息:[调试] 设备处于 API 级别 25 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "pm list packages -3 com.pearsoned.sigiriya" 信息:[调试] 应用程序已安装 信息:应用程序已安装,正在重置应用程序 信息:[调试]运行快速重置(停止和清除) 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "am force-stop com.pearsoned.sigiriya" 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "pm clear com.pearsoned.sigiriya" 信息:[调试] 转发系统:4724 到设备:4724 info: [debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 forward tcp:4724 tcp:4724 信息:[调试] 将 appium 引导程序推送到设备... info: [debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 push "C:\Program Files (x86)\Appium\node_modules\appium\构建\android_bootstrap\AppiumBootstrap.jar" /data/local/tmp/ 信息:[调试] 将设置 apk 推送到设备... info: [debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 install "C:\Program Files (x86)\Appium\node_modules\appium\构建\settings_apk\settings_apk-debug.apk" 信息:[调试] 停止 logcat 捕获 信息:[调试] Logcat 以代码 null 终止,信号 SIGTERM info: [debug] 发送关闭命令,等待 UiAutomator 停止... 警告:UiAutomator 没有足够快地关闭,称它消失了 信息:[调试] 清理 android 对象 信息:[调试] 清理 appium 会话 信息:[调试] 错误:命令失败:C:\Windows\system32\cmd.exe /s /c "C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834安装“C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk” 无法安装 C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk:失败 [INSTALL_FAILED_ALREADY_EXISTS:尝试重新安装 io.appium.settings 而不先卸载。]
at ChildProcess.exithandler (child_process.js:751:12) at ChildProcess.emit (events.js:110:17) at maybeClose (child_process.js:1016:16) at Process.ChildProcess._handle.onexit (child_process.js:1088:5)info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Command failed: C:\Windows \system32\cmd.exe /s /c \"C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 install \"C:\Program Files (x86)\Appium \node_modules\appium\build\settings_apk\settings_apk-debug.apk\"\"\n未能安装 C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk:失败 [INSTALL_FAILED_ALREADY_EXISTS : 尝试重新安装 io.appium.settings 而不先卸载。]\r\n)","killed":false,"code":1,"signal":null,"cmd":"C:\Windows \system32\cmd.exe /s /c \"C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 install \"C:\Program Files (x86)\Appium \node_modules\appium\build\settings_apk\settings_apk-debug.apk\"\"","origValue":"命令失败:C:\Windows\system32\cmd.exe /s /c \"C:\Users\uwickdi \AppData\Local\Android\sdk\platform-tools\adb .exe -s FA6C10301834 install \"C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk\"\"\n安装C:\Program Files (x86)\Appium失败\node_modules\appium\build\settings_apk\settings_apk-debug.apk: 失败 [INSTALL_FAILED_ALREADY_EXISTS: 尝试重新安装 io.appium.settings 而不先卸载。]\r\n"},"sessionId":null} 错误:无法启动 Appium 会话,错误是:错误:命令失败:C:\Windows\system32\cmd.exe /s /c "C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools \adb.exe -s FA6C10301834 install "C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk"" 无法安装 C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk:失败 [INSTALL_FAILED_ALREADY_EXISTS:尝试重新安装 io.appium.settings 而不先卸载。]
信息:
感谢您帮助解决此问题。 谢谢你
【问题讨论】: