升级至Appium Python Client 3.0.0后如何设置Desired Capabilities?
解决Appium-Python-Client 3.x + Selenium 4.x 配置Windows应用会话的问题
问题原因
升级后Appium与Selenium的Capabilities配置逻辑发生变化:
- 旧版本直接传递字典格式
desired_caps的方式已被废弃,新版本要求通过Options类传递配置 - 若导入的
WindowsOptions来自Selenium而非Appium库,会导致配置无法被正确识别 - 手动设置
w3c = False已无必要,新版本默认使用W3C协议,且WinAppDriver已原生支持该协议
解决方案
1. 使用正确的Options类配置
方式一:用Appium专属WindowsOptions
from appium import webdriver from appium.webdriver.options.windows import WindowsOptions import os os.startfile(self.winappdriver_location) options = WindowsOptions() # 核心配置:指定目标应用路径 options.app = self.app_location # 可选:添加设备名称等额外配置 options.add_capability("deviceName", "WindowsPC") # 初始化驱动 self.driver = webdriver.Remote("http://127.0.0.1:4723", options=options)
方式二:用通用AppiumOptions
from appium import webdriver from appium.options.common import AppiumOptions import os os.startfile(self.winappdriver_location) options = AppiumOptions() options.set_capability("platformName", "Windows") options.set_capability("app", self.app_location) options.set_capability("deviceName", "WindowsPC") self.driver = webdriver.Remote("http://127.0.0.1:4723", options=options)
2. 确保依赖版本兼容
- 更新WinAppDriver到最新版本
- 确认Appium Server为2.x版本,并安装最新Windows驱动:
appium driver install windows - 保证Appium-Python-Client 3.x与Appium Server 2.x版本匹配
3. 移除冗余配置
删除代码中的self.driver.w3c = False,新版本默认启用W3C协议,手动关闭会引发协议冲突。
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

