Appium访问us.justdial.com超时失败问题排查求助
解决Android Chrome自动化中的ADB超时与页面跳转问题
我来帮你一步步排查这个ADB超时的问题,结合你用到的Selenium Oxygen 2、Appium 1.7.1和Android 6.0.1设备的情况,梳理几个针对性的解决方向:
1. 确认ChromeDriver与Chrome版本的精确匹配
你提到已经更新了ChromeDriver,但一定要注意版本必须完全对应——设备上安装的Chrome版本,要和你使用的ChromeDriver版本严格匹配(比如Chrome 68对应ChromeDriver 68.0.3440.75)。可以按以下步骤验证:
- 在设备的Chrome浏览器中打开
chrome://version,查看准确的版本号 - 下载对应版本的ChromeDriver替换现有驱动
- 注意:Appium 1.7.1对新版本ChromeDriver兼容性有限,建议选择Chrome 60-70区间的对应驱动,适配性会更好
2. 延长ADB命令超时时间
ADB默认超时时间较短,很容易在页面加载慢的时候触发失败。你可以通过两种方式调整:
- 在Desired Capabilities中添加超时配置(以Java为例):
DesiredCapabilities caps = new DesiredCapabilities(); // 设置ADB执行超时为30秒(30000毫秒) caps.setCapability("adbExecTimeout", 30000);
- 或者启动Appium服务器时添加参数:
--adb-exec-timeout 30000
3. 强制Chrome在当前标签打开URL
页面刷新后跳转到新标签,可能是网站的跳转逻辑或Chrome默认设置导致的,你可以通过ChromeOptions强制在当前标签加载:
ChromeOptions chromeOpts = new ChromeOptions(); // 禁用弹窗拦截,避免跳转触发新标签 chromeOpts.addArguments("--disable-popup-blocking"); // 强制使用当前窗口打开链接 chromeOpts.addArguments("--no-new-window"); caps.setCapability(ChromeOptions.CAPABILITY, chromeOpts);
如果设备可以手动操作,也可以在Chrome的设置里关闭“打开链接时在新标签页中打开”的选项。
4. 检查Appium与Android SDK的兼容性
Appium 1.7.1属于较旧版本,要确保你的Android SDK Build Tools版本和它兼容:
- Appium 1.7.1推荐搭配Android SDK Build Tools 26.x或27.x版本
- 避免使用过高版本的Build Tools,否则可能出现ADB通信异常
5. 排查设备连接稳定性
ADB超时很多时候和设备连接不稳定有关,试试这些操作:
- 更换一根质量可靠的USB数据线,确保连接紧密
- 在设备上确认开启了“USB调试”,如果有“允许模拟位置”选项也一并开启
- 重启ADB服务:依次执行
adb kill-server和adb start-server - 检查设备状态:执行
adb devices,确保设备状态显示为device,而非unauthorized
6. 调整Appium版本
Appium 1.7.1存在一些已知的Chrome自动化bug,你可以尝试:
- 升级到Appium 1.8.x版本(这个版本对Android 6.0的支持相对稳定)
- 或者降级到Appium 1.6.x版本,某些场景下兼容性可能更好
- 注意调整版本后要重新配置环境,确保所有依赖项适配
如果以上方法都没有解决问题,建议补充更详细的错误日志(比如具体是哪条ADB命令超时),以及你的Desired Capabilities配置,这样能更精准地定位问题。
内容的提问来源于stack exchange,提问作者Vaibhav Singh
相关产品推荐
相关产品推荐

