使用RobotFramework+Appium遇WebDriverException:Capabilities缺失platform name
错误原因分析
错误提示WebDriverException: Message: platform name is missing in the capabilities说明Appium服务未接收到platformName这个关键capability参数,根源是当前Robot文件中传递capabilities的方式不符合robotframework-appiumlibrary 2.0.0的语法要求。
在AppiumLibrary 2.x版本中,Open Application关键字要求将所有capabilities以字典形式传递,而不是分散的key=value参数。你当前的写法会导致这些参数没有被正确识别为desired capabilities的一部分,进而触发缺失关键参数的错误。
解决方案
1. 修改Robot文件的capabilities定义与传递方式
将分散的capability参数整合为字典变量,再传递给Open Application关键字:
*** Settings *** Library AppiumLibrary *** Variables *** ${REMOTE_URL} secretHubLink &{CAPABILITIES} platformName Android platformVersion 10 deviceName Galaxy S20 app secretAppUrl name Robot Framework Sample Test build Appium Python Robot *** Test Cases *** Example Case Open Application ${REMOTE_URL} &{CAPABILITIES}
2. 清理重复依赖(可选)
从pip freeze结果看,你的环境中存在重复的selenium==4.7.2记录,可执行以下命令清理:
pip uninstall -y selenium && pip install selenium==4.7.2
3. 额外验证点
- 确保
${REMOTE_URL}指向的Appium服务已正常启动,且版本与Appium-Python-Client==2.7.1兼容(推荐使用Appium Server 2.x版本) - 确认
${APP}对应的应用包/URL可正常被Appium识别
内容的提问来源于stack exchange,提问作者helloiamsinan
相关产品推荐
相关产品推荐

