设置 AUTOMATION_NAME = "ESPRESSO" 时 Appium 脚本无法执行
Appium Scripts are failed to Execute while setting AUTOMATION_NAME = "ESPRESSO"
我正在使用 Espresso Driver 运行 我的脚本。每次它要求我做仪器。但是我没有源代码,因为我只从客户那里收到了 .APK 文件。在这种情况下,有什么解决方法吗?
版本、代码和日志详细信息如下。
Appium Version : Appium 1.14.0 - Beta 1 (Tested with Appium 1.13 also)
dc.setCapability(MobileCapabilityType.PLATFORM, Platform.ANDROID);
dc.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ESPRESSO);
dc.setCapability("forceEspressoRebuild", "true");
dc.setCapability("appPackage","com.example.android.contactmanager");
dc.setCapability("appActivity","com.example.android.contactmanager.ContactManager");
我用过dc.setCapability("forceEspressoRebuild", "true");
Error Stack Trace "Exception in thread "main"
org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details.
Original error: An unknown server-side error occurred while processing the command.
Original error: java.lang.SecurityException: Permission Denial: starting instrumentation ComponentInfo{io.appium.espressoserver.test/androidx.test.runner.AndroidJUnitRunner} from pid=13612, uid=13612 not allowed because package io.appium.espressoserver.test does not have a signature matching the target com.phonepe.app
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'INBLR-JENAB', ip: '192.168.99.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131'
Driver info: driver.version: AndroidDriver"
Espresso needs to be in the application, you're trying to test using the appium-espresso-driver. Check out How to Get Started with Espresso (Android) 文章以熟悉该概念。
如果它不存在并且您无权访问源 - 您将无法使用 Espresso 驱动程序,您将不得不转而使用 UIAutomator2
我没有像你一样使用 Epresso,但遇到了类似的问题。问题是您必须签署 apk lib 才能与您的设备相匹配。有时您的设备很特殊,需要特殊签名。
这是我所做的:
- 找到ui2automoator的apk,我在这里找到了(C:\Users\duy.chung\AppData\Roaming\nvm\v12.13.0\node_modules\appium\node_modules\appium-uiautomator2-server\apks)
- 签名
- 将已签名的apk放回原文件夹
所以我想你也可以通过找到 appium-espresso-driver apk 并签名,然后将它们放回 node_modules 的原始文件夹来做同样的事情。
这是 off-late,因为我目前正在使用带有 Espresso 的 Appium,我能够通过从 Android Studio AVD Manager 中的 Android 模拟器擦除数据来解决这个问题然后 运行 Espresso 测试。并解决了签名问题。但是问题是清除数据后,重启模拟器需要很长时间。
我正在使用 Espresso Driver 运行 我的脚本。每次它要求我做仪器。但是我没有源代码,因为我只从客户那里收到了 .APK 文件。在这种情况下,有什么解决方法吗?
版本、代码和日志详细信息如下。
Appium Version : Appium 1.14.0 - Beta 1 (Tested with Appium 1.13 also)
dc.setCapability(MobileCapabilityType.PLATFORM, Platform.ANDROID);
dc.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ESPRESSO);
dc.setCapability("forceEspressoRebuild", "true");
dc.setCapability("appPackage","com.example.android.contactmanager");
dc.setCapability("appActivity","com.example.android.contactmanager.ContactManager");
我用过dc.setCapability("forceEspressoRebuild", "true");
Error Stack Trace "Exception in thread "main"
org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details.
Original error: An unknown server-side error occurred while processing the command.
Original error: java.lang.SecurityException: Permission Denial: starting instrumentation ComponentInfo{io.appium.espressoserver.test/androidx.test.runner.AndroidJUnitRunner} from pid=13612, uid=13612 not allowed because package io.appium.espressoserver.test does not have a signature matching the target com.phonepe.app
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'INBLR-JENAB', ip: '192.168.99.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131'
Driver info: driver.version: AndroidDriver"
Espresso needs to be in the application, you're trying to test using the appium-espresso-driver. Check out How to Get Started with Espresso (Android) 文章以熟悉该概念。
如果它不存在并且您无权访问源 - 您将无法使用 Espresso 驱动程序,您将不得不转而使用 UIAutomator2
我没有像你一样使用 Epresso,但遇到了类似的问题。问题是您必须签署 apk lib 才能与您的设备相匹配。有时您的设备很特殊,需要特殊签名。
这是我所做的:
- 找到ui2automoator的apk,我在这里找到了(C:\Users\duy.chung\AppData\Roaming\nvm\v12.13.0\node_modules\appium\node_modules\appium-uiautomator2-server\apks)
- 签名
- 将已签名的apk放回原文件夹
所以我想你也可以通过找到 appium-espresso-driver apk 并签名,然后将它们放回 node_modules 的原始文件夹来做同样的事情。
这是 off-late,因为我目前正在使用带有 Espresso 的 Appium,我能够通过从 Android Studio AVD Manager 中的 Android 模拟器擦除数据来解决这个问题然后 运行 Espresso 测试。并解决了签名问题。但是问题是清除数据后,重启模拟器需要很长时间。