使用Appium在安卓模拟器运行Chrome浏览器的报错排查及解决
从提供的Appium服务端日志可100%确认,报错的核心原因是当前运行的安卓模拟器未安装Chrome浏览器,日志中明确输出了[debug] [ADB] 'com.android.chrome' is not installed的检测结果,后续的会话创建失败、'app' option is required for reinstall报错都是基于这个前提触发的。
验证方法
你可以手动执行ADB命令二次确认Chrome的安装状态:
adb -s emulator-5554 shell dumpsys package com.android.chrome
如果命令执行后无任何应用包信息输出,即可确认模拟器未安装Chrome。
修复方案
方案1:手动安装Chrome到模拟器
- 下载和模拟器安卓版本、CPU架构匹配的Chrome APK安装包(x86/x86_64架构的模拟器需下载对应x86版本的APK,避免安装失败)
- 确保模拟器处于运行状态,执行ADB安装命令:
adb install /本地路径/Chrome安装包.apk - 安装完成后手动打开一次Chrome,完成初始引导设置,避免自动化运行时弹出引导页阻断执行
方案2:修改配置让Appium自动安装Chrome
在现有Capability配置中新增app参数,值为本地Chrome APK的绝对路径,Appium启动会话时会自动完成安装,修改后的代码示例如下:
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"); // 新增app配置,指定Chrome APK本地路径 cap.setCapability(MobileCapabilityType.APP, "/Users/test/Downloads/chrome.apk"); 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);
注意事项
- 已配置的
chromedriverExecutable版本必须和模拟器安装的Chrome大版本完全匹配,否则会触发版本不兼容报错。可在Chrome设置的「关于Chrome」页面查看版本号,下载对应版本的ChromeDriver即可。 - 不要使用模拟器自带的默认浏览器,其包名和Chrome不同,无法被
BROWSER_NAME=Chrome的配置识别。
内容的提问来源于stack exchange,提问作者Gaj Julije
相关产品推荐
相关产品推荐

