【appium】6.appium遇到的问题

1.appium-python-client 修改版本1.5 为5.1.1,后执行python程序时,提示: raise TypeError( TypeError: missing 1 required keyword-only argument: 'options' (instance of driver `options.Options` class)

你遇到的错误:

复制代码
TypeError: missing 1 required keyword-only argument: 'options' 
(instance of driver `options.Options` class)

📌 错误原因分析

这是 Appium-Python-Client 版本升级带来的 API 不兼容问题

你从版本 1.5 升级到了 5.1.1,这是一个非常大的版本跳跃,其中 Appium 客户端库进行了重大更新(主要是与 Selenium 的整合和重构)。


🔍 旧版 vs 新版 WebDriver 初始化方式对比

✅ 旧版(Appium-Python-Client < 3.x)

复制代码
from appium import webdriver

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'emulator-5554',
    'appPackage': 'com.example.app',
    'appActivity': '.MainActivity'
}

driver = webdriver.Remote('http://localhost:4723', desired_caps)

这个写法在新版本中已经不被支持了!


✅ 新版(Appium-Python-Client ≥ 5.0)

现在要求使用 options 参数来代替直接传入 desired_caps,这与新版 Selenium 的风格一致。


✅ 正确修改方法(适用于 Appium-Python-Client 5.1.1)

你需要将原来的 desired_caps 放入一个 options 对象中。

✅ 修改后的代码如下:

复制代码
from appium import webdriver
from appium.options.android import UiAutomator2Options

# 设置 Desired Capabilities
desired_caps = {
    'platformName': 'Android',
    'deviceName': 'emulator-5554',
    'appPackage': 'com.example.app',
    'appActivity': '.MainActivity',
    'automationName': 'UiAutomator2',
    'noReset': True
}

# 使用新的 Options 类封装
options = UiAutomator2Options().load_capabilities(desired_caps)

# 创建 WebDriver 实例
driver = webdriver.Remote(
    command_executor='http://localhost:4723',
    options=options
)

print("Driver started:", driver)

🧪 常见注意事项

注意事项 说明
UiAutomator2Options Android 测试时推荐使用这个类
options 是必须参数 新版要求必须使用 options 而不是 desired_caps
command_executor 就是你的 Appium Server 地址:http://localhost:4723

✅ 如何降级回旧版本?(可选)

如果你暂时不想改代码,可以考虑降级到旧版本:

复制代码
pip install Appium-Python-Client==1.5.0

但这只是临时方案,建议尽快迁移到新版 API。


✅ 总结

问题 解决方法
TypeError: missing keyword-only argument 'options' 使用 options 参数代替 desired_caps
Appium Python Client 5.1.1 兼容性问题 使用 UiAutomator2Options.load_capabilities() 包装 desired_caps
推荐做法 使用新版 API,适配未来更新

如果你愿意贴出你的完整代码片段,我可以帮你逐行修改成兼容 5.1.1 的写法。欢迎继续提问!

相关推荐
伤心男孩拯救世界(Code King)3 天前
搭建Appium详细教程
appium
程序员小远4 天前
如何搭建Appium环境?
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
卫生纸不够用6 天前
Appium简单入门
appium
测试199811 天前
如何用Appium实现移动端UI自动化测试?
自动化测试·软件测试·python·测试工具·ui·职场和发展·appium
测试199814 天前
Appium使用指南与自动化测试案例详解
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
黑金IT20 天前
Appium和Detox,哪一种更好的为手机自动化
智能手机·appium·自动化
程序员小远1 个月前
Appium+python+unittest搭建UI自动化框架
自动化测试·软件测试·python·测试工具·ui·appium·测试用例
闲人编程1 个月前
使用Python操作你的手机(Appium入门)
python·智能手机·appium·自动化·codecapsule·处理弹窗
cllsse1 个月前
appium学习
appium
卓码软件测评2 个月前
第三方软件测试机构:Appium如何使用Selenium的客户端库?
功能测试·selenium·测试工具·性能优化·appium