我正在尝试学习Appium,使用文档中给出的说明:
http://appium.io/docs/en/about-appium/getting-started/?lang=en
我已经将这些代码放入一个名为AppiumTest.js的文件中。
const wdio = require('webdriverio');
const opts = {
port: 4723,
desiredCapabilities: {
platformName: "Android",
platformVersion: "8.0",
deviceName: "Pixel_API_26",
app: "C:/Users/SStaple/AppData/Local/Android/Sdk/ApiDemos-debug.apk",
automationName: "UiAutomator2"
}
};
const client = wdio.remote(opts);
client
.init()
.click("~App")
.click("~Alert Dialogs")
.back()
.back()
.end();在启动Appium之后,我将使用命令: node AppiumTest.js从Node.js命令提示符中运行它。运行Android 8模拟器也是必要的。
(Appium Server v1.7.1)
我在Appium Server窗口中得到一个输出。有许多错误。显示的第一个错误是:
Error "Command 'C\:\\Users\\SStaple\\AppData\\Local\\Android\\Sdk\\build-tools\\26.0.2\\aapt.exe d badging C\:\\Users\\SStaple\\AppData\\Local\\Programs\\appium-desktop\\resources\\app\\node_modules\\appium\\node_modules\\appium-uiautomator2-driver\\uiautomator2\\appium-uiautomator2-server-v0.1.8.apk' exited with code 1" while getting badging info我尝试在命令提示符中单独运行此命令:
C:\Users\SStaple\AppData\Local\Android\Sdk\build-tools\26.0.2\aapt.exe d badging C:\Users\SStaple\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-uiautomator2-driver\uiautomator2\appium-uiautomator2-server-v0.1.8.apk我得到的结果是:
W/zipro (13656): Error opening archive C:\Users\SStaple\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-uiautomator2-driver\uiautomator2\appium-uiautomator2-server-v0.1.8.apk: Invalid file
ERROR: dump failed because no AndroidManifest.xml found有什么想法吗?
更新28/12/2017 -我找到了解决方案!
案卷看上去很可疑。它的大小是0Kb!我从https://github.com/appium/appium-uiautomator2-server/releases下载了apk文件,并使用了该文件。这个是1,518 KB大小。(显然,在安装beta时,npm没有将apk文件放在正确的位置上存在一些问题。)
解决了这个问题后,我可以继续下一个问题了!
发布于 2017-12-28 08:56:07
这是一个带有apk签名的已知问题。
您可以从尝试更新依赖项开始:
npm install appium-uiautomator2-driver
npm install appium-adb如果没有帮助,您还可以尝试更多的方法(但对于Linux来说是这样):
修改./node-v6.11.4-linux-armv7l/lib/node_modules/appium/node_modules/appium-adb/build/lib/tools/apk-signing.js,这样即使它看起来没有签名,它也会返回一个true。
case 20:
context$1$0.prev = 20;
context$1$0.t0 = context$1$0’catch’;
_loggerJs2[‘default’].debug(“App not signed with debug cert.”);
return context$1$0.abrupt(‘return’, true);https://stackoverflow.com/questions/47994831
复制相似问题