运行 Chrome 在带有 appium 的模拟器上?
Run Chrome on emulator with appium?
当我尝试在带有 appium 的模拟器设备上 运行 Chrome 时遇到了一些问题。
我很确定 Chrome 没有安装在我的模拟器上,但不是 100% 确定是这种情况,如果是这样如何修复它。
当前 mu Appim 服务器日志如下所示:
[debug] [ADB] Running '/Users/test/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys deviceidle whitelist +io.appium.settings ; dumpsys deviceidle whitelist +io.appium.uiautomator2.server ; dumpsys deviceidle whitelist +io.appium.uiautomator2.server.test ;'
[debug] [UiAutomator2] No app capability. Assuming it is already on the device
[debug] [ADB] Getting install status for com.android.chrome
[debug] [ADB] Running '/Users/test/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package com.android.chrome'
[debug] [ADB] 'com.android.chrome' is not installed
[debug] [UiAutomator2] Deleting UiAutomator2 session
[debug] [UiAutomator2] Deleting UiAutomator2 server session
[debug] [WD Proxy] Matched '/' to command name 'deleteSession'
[UiAutomator2] Did not get confirmation UiAutomator2 deleteSession worked; Error was: UnknownError: An unknown server-side error occurred while processing the command. Original error: Trying to proxy a session command without session id
[debug] [Logcat] Stopping logcat capture
[debug] [ADB] Removing forwarded port socket connection: 8207
[debug] [ADB] Running '/Users/test/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 forward --remove tcp:8207'
[UiAutomator2] Restoring hidden api policy to the device default configuration
[debug] [ADB] Running '/Users/test/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell 'settings delete global hidden_api_policy_pre_p_apps;settings delete global hidden_api_policy_p_apps;settings delete global hidden_api_policy''
[debug] [BaseDriver] Event 'newSessionStarted' logged at 1634917808720 (17:50:08 GMT+0200 (Central European Summer Time))
[debug] [W3C] Encountered internal error running command: Error: 'app' option is required for reinstall
[debug] [W3C] at Object.resetApp (/usr/local/lib/node_modules/appium/node_modules/appium-android-driver/lib/android-helpers.js:392:11)
[debug] [W3C] at AndroidUiautomator2Driver.initAUT (/usr/local/lib/node_modules/appium/node_modules/appium-uiautomator2-driver/lib/driver.js:546:9)
[debug] [W3C] at AndroidUiautomator2Driver.startUiAutomator2Session (/usr/local/lib/node_modules/appium/node_modules/appium-uiautomator2-driver/lib/driver.js:408:5)
[debug] [W3C] at AndroidUiautomator2Driver.createSession (/usr/local/lib/node_modules/appium/node_modules/appium-uiautomator2-driver/lib/driver.js:229:7)
[debug] [W3C] at AppiumDriver.createSession (/usr/local/lib/node_modules/appium/lib/appium.js:387:35)
我使用的代码是:
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "EmulatorName");
cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
cap.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
cap.setCapability("appium:chromeOptions", ImmutableMap.of("w3c", false));
cap.setCapability("chromedriverExecutable", "/Users/test/Downloads/chromedriver");
driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
如果 Appium 找不到该应用程序,它会尝试将其安装到设备上。因此,使用 APK 文件的位置在您想要的功能中添加 App 变量非常重要。
此行显示 Appium 尝试在设备上安装 chrome 但无法在 Caps 中找到 APP 变量。
Encountered internal error running the command: Error: 'app' option is required for reinstall
只需将此添加到您的上限即可:
cap.setCapability(MobileCapabilityType.APP, "APK PATH OF CHROME");
当我尝试在带有 appium 的模拟器设备上 运行 Chrome 时遇到了一些问题。 我很确定 Chrome 没有安装在我的模拟器上,但不是 100% 确定是这种情况,如果是这样如何修复它。
当前 mu Appim 服务器日志如下所示:
[debug] [ADB] Running '/Users/test/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys deviceidle whitelist +io.appium.settings ; dumpsys deviceidle whitelist +io.appium.uiautomator2.server ; dumpsys deviceidle whitelist +io.appium.uiautomator2.server.test ;'
[debug] [UiAutomator2] No app capability. Assuming it is already on the device
[debug] [ADB] Getting install status for com.android.chrome
[debug] [ADB] Running '/Users/test/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package com.android.chrome'
[debug] [ADB] 'com.android.chrome' is not installed
[debug] [UiAutomator2] Deleting UiAutomator2 session
[debug] [UiAutomator2] Deleting UiAutomator2 server session
[debug] [WD Proxy] Matched '/' to command name 'deleteSession'
[UiAutomator2] Did not get confirmation UiAutomator2 deleteSession worked; Error was: UnknownError: An unknown server-side error occurred while processing the command. Original error: Trying to proxy a session command without session id
[debug] [Logcat] Stopping logcat capture
[debug] [ADB] Removing forwarded port socket connection: 8207
[debug] [ADB] Running '/Users/test/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 forward --remove tcp:8207'
[UiAutomator2] Restoring hidden api policy to the device default configuration
[debug] [ADB] Running '/Users/test/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell 'settings delete global hidden_api_policy_pre_p_apps;settings delete global hidden_api_policy_p_apps;settings delete global hidden_api_policy''
[debug] [BaseDriver] Event 'newSessionStarted' logged at 1634917808720 (17:50:08 GMT+0200 (Central European Summer Time))
[debug] [W3C] Encountered internal error running command: Error: 'app' option is required for reinstall
[debug] [W3C] at Object.resetApp (/usr/local/lib/node_modules/appium/node_modules/appium-android-driver/lib/android-helpers.js:392:11)
[debug] [W3C] at AndroidUiautomator2Driver.initAUT (/usr/local/lib/node_modules/appium/node_modules/appium-uiautomator2-driver/lib/driver.js:546:9)
[debug] [W3C] at AndroidUiautomator2Driver.startUiAutomator2Session (/usr/local/lib/node_modules/appium/node_modules/appium-uiautomator2-driver/lib/driver.js:408:5)
[debug] [W3C] at AndroidUiautomator2Driver.createSession (/usr/local/lib/node_modules/appium/node_modules/appium-uiautomator2-driver/lib/driver.js:229:7)
[debug] [W3C] at AppiumDriver.createSession (/usr/local/lib/node_modules/appium/lib/appium.js:387:35)
我使用的代码是:
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "EmulatorName");
cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
cap.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
cap.setCapability("appium:chromeOptions", ImmutableMap.of("w3c", false));
cap.setCapability("chromedriverExecutable", "/Users/test/Downloads/chromedriver");
driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
如果 Appium 找不到该应用程序,它会尝试将其安装到设备上。因此,使用 APK 文件的位置在您想要的功能中添加 App 变量非常重要。 此行显示 Appium 尝试在设备上安装 chrome 但无法在 Caps 中找到 APP 变量。
Encountered internal error running the command: Error: 'app' option is required for reinstall
只需将此添加到您的上限即可:
cap.setCapability(MobileCapabilityType.APP, "APK PATH OF CHROME");