You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Appium自动化打开Android设备Chrome浏览器时遇断言错误

解决Appium启动Android Chrome时的AssertionError: Driver capabilities must be defined错误

你遇到的AssertionError: Driver capabilities must be defined是因为传入的capabilities字典缺少Appium初始化Chrome驱动所需的必要默认配置,同时代码里存在方法调用错误。

解决方案

  • 合并Chrome默认能力到自定义配置:仅自定义gigafox和基础参数不足以让Appium识别完整的Chrome驱动能力,需要整合DesiredCapabilities.CHROME中的默认配置
  • 修正退出方法的大小写:Python WebDriver的退出方法是小写的quit(),大写Quit()会触发报错
  • 清理无效配置:gigafox:application为空配置对启动Chrome无意义,可直接移除避免干扰

修改后的完整代码

from __future__ import print_function

import sys
import time

from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


DC_USER_NAME = 'admin'
DC_API_KEY = ''
DC_DEVICE_ID = 'd6b54c70-fc07-49a4-9737-11daee82f19c'
DC_HOST = 'localhost'

AUTOMATION_NAME = 'UiAutomator2'

# 先复制Chrome默认能力,再合并自定义配置
caps = DesiredCapabilities.CHROME.copy()
caps.update({
    'gigafox:UserName'      : DC_USER_NAME,
    'gigafox:ApiKey'        : DC_API_KEY,
    'gigafox:Device'        : DC_DEVICE_ID,
    'newCommandTimeout'     : 1000,
    'platformName'          : 'Android',
    'automationName'        : AUTOMATION_NAME
})


url = 'http://{0}/Appium'.format(DC_HOST)
print('loading driver')

driver = webdriver.Remote(url, caps)
print('connected.')

# 修正为标准的小写退出方法
driver.quit()

关键修改说明

  1. 通过DesiredCapabilities.CHROME.copy()获取Chrome的默认配置参数,再用update()合并自定义的gigafox和平台配置,确保capabilities包含Appium所需的所有必要信息
  2. 移除了无意义的空配置项gigafox:application,避免Appium解析时出现歧义
  3. 修复了退出方法的大小写错误,符合Python WebDriver的方法命名规范

内容的提问来源于stack exchange,提问作者Kristofor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 16:25:22