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

Appium报错:AttributeError 'NoneType'对象无'to_capabilities'属性

Appium Python自动化测试报错:AttributeError 'NoneType' object has no attribute 'to_capabilities' 解决方法

原测试代码

from appium import webdriver

desired_capabilities = {
    'uuid':'emulator-5554',
    'platformName': 'Android',  
    'deviceName': 'LDPlayer', 
    'appPackage': 'com.ldmnq.launcher3',  
    'appActivity': 'com.android.launcher3.Launcher',  
    'automationName': 'UiAutomator2',
}


driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities)


driver.quit()

触发的报错信息

错误:Exception has occurred: AttributeError 'NoneType' object has no
attribute 'to_capabilities'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'to_capabilities'

Exception has occurred: AttributeError 'NoneType' object has no
attribute 'to_capabilities' File "", line 13, in
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'to_capabilities'

解决方法

这个报错是因为你使用的Appium Python Client版本为2.x及以上,该版本不再支持直接将字典格式的desired_capabilities传给webdriver.Remote,必须用对应平台的Options类封装配置。具体修正步骤如下:

  • 导入Android平台对应的UiAutomator2Options类
  • 用load_capabilities方法加载原有的配置字典
  • 将封装好的options对象传给webdriver.Remote

修正后的代码

from appium import webdriver
from appium.options.android import UiAutomator2Options

desired_capabilities = {
    'uuid':'emulator-5554',
    'platformName': 'Android',  
    'deviceName': 'LDPlayer', 
    'appPackage': 'com.ldmnq.launcher3',  
    'appActivity': 'com.android.launcher3.Launcher',  
    'automationName': 'UiAutomator2',
}

# 用UiAutomator2Options封装配置
options = UiAutomator2Options().load_capabilities(desired_capabilities)
# 传递options参数给Remote
driver = webdriver.Remote('http://localhost:4723/wd/hub', options=options)

driver.quit()

如果坚持要用旧版写法,可以将Appium Python Client降级到1.x版本,执行命令:

pip install Appium-Python-Client==1.3.0

但更推荐使用2.x版本的标准写法,适配后续Appium生态的更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:21:18