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

使用Gigafox运行自动化脚本时遇Driver capabilities断言错误

解决Gigafox替代Appium时的“Driver capabilities must be defined”错误

问题说明

用Gigafox替换Appium运行自动化脚本时,不管是测试浏览器还是应用,都会抛出如下错误:
Assert self.caps, 'Driver capabilities must be defined' AssertionError: Driver capabilities must be defined

试过Chrome配置、应用包名等多种设置,问题依然存在,脚本代码如下:

from __future__ import print_function

import sys
import time

from appium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


GF_USER_NAME = 'admin'
GF_API_KEY = ''
GF_DEVICE_ID = '1edcc865-60d9-4574-b46f-96070af21b8a'
GF_HOST = '192.168.0.162'


# These variables probably don't need change unless you change the app or
# the way you use Appium.

#APP_PACKAGE = 'com.fisglobal.d1amerismobile.sit/com.fisglobal.d1amerismobile.sit.MainActivity'
#APP_ACTIVITY = 'com.fisglobal.d1amerismobile.sit/com.fisglobal.d1amerismobile.sit.MainActivity'

AUTOMATION_NAME = 'UiAutomator2'
#desired_caps = DesiredCapabilities.CHROME

desired_capabilities = {
    'gigafox:UserName'      : GF_USER_NAME,
    'gigafox:ApiKey'        : GF_API_KEY,
    'gigafox:Device'        : GF_DEVICE_ID,
    'gigafox:application'   : "",
    'appPackage'            : "",
    'appActivity'           : "",
    'browserName'           : "Chrome",
    'newCommandTimeout'     : 20000,
    'platformName'          : "Android",
    'automationName'        : AUTOMATION_NAME
}


#url used to connect to the host server where the device is
url = 'http://{0}/Appium'.format(GF_HOST)
print('loading driver')

#Starts the driver to establish connection to device
driver = webdriver.Remote(url, desired_capabilities)

print('connected.')
time.sleep(10)

#Sets the site the browser will open
driver.get("https://www.appium.io")
print('connected.')
time.sleep(10)

driver.quit()

问题原因与修复方案

这个错误本质是Gigafox无法识别有效能力配置,你的脚本存在几个关键问题:

  • Gigafox参数命名错误:gigafox:application需改为gigafox:Application(首字母大写),Gigafox专属参数区分大小写。
  • 空值参数干扰:同时保留appPackage、appActivity、gigafox:application空字符串,导致驱动无法判断测试场景,需根据测试目标清理无效空值。
  • API Key未配置:GF_API_KEY为空会导致Gigafox认证失败,进而影响能力解析,必须填写有效API Key。

浏览器测试场景修复配置

如果测试Chrome,删除所有App相关空参数,保留浏览器配置:

desired_capabilities = {
    'gigafox:UserName': GF_USER_NAME,
    'gigafox:ApiKey': GF_API_KEY,  # 填写你的Gigafox有效API Key
    'gigafox:Device': GF_DEVICE_ID,
    'browserName': "Chrome",
    'newCommandTimeout': 20000,
    'platformName': "Android",
    'automationName': AUTOMATION_NAME
}

应用测试场景修复配置

如果测试App,删除browserName,填写正确的应用包名、启动Activity,同时gigafox:Application需填写应用在Gigafox中的名称或ID:

desired_capabilities = {
    'gigafox:UserName': GF_USER_NAME,
    'gigafox:ApiKey': GF_API_KEY,  # 填写有效API Key
    'gigafox:Device': GF_DEVICE_ID,
    'gigafox:Application': "你的应用在Gigafox中的名称或ID",  # 不能为空
    'appPackage': "com.fisglobal.d1amerismobile.sit",
    'appActivity': ".MainActivity",  # 无需重复包名,简化格式
    'newCommandTimeout': 20000,
    'platformName': "Android",
    'automationName': AUTOMATION_NAME
}

另外需检查Gigafox连接URL,默认端口为8080,若GF_HOST未包含端口,需修改为http://{0}:8080/Appium。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:27:20