这个错误通常是由于Appium服务和测试脚本之间的协议不匹配导致的。解决方法是根据Appium服务的版本和测试脚本的需求进行调整。
以下是一个示例的解决方法:
首先,确保你的Appium服务版本与测试脚本兼容。你可以在Appium Desktop中查看服务的版本号,或者在命令行中运行appium --version
命令。
如果你的Appium服务版本为1.9.0或更高版本,那么你的测试脚本需要使用W3C协议。在创建会话时,你需要提供capabilities
参数,并将protocolName
设置为"W3C"。下面是一个示例代码:
from appium import webdriver
desired_caps = {
"platformName": "Android",
"deviceName": "Android Emulator",
"app": "path/to/your/app.apk",
"automationName": "UiAutomator2",
"newCommandTimeout": 300
}
# 设置W3C协议
desired_caps['appium:protocolName'] = 'W3C'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
desired_capabilities
参数,而不是capabilities
参数。下面是一个示例代码:from appium import webdriver
desired_caps = {
"platformName": "Android",
"deviceName": "Android Emulator",
"app": "path/to/your/app.apk",
"automationName": "UiAutomator2",
"newCommandTimeout": 300
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
通过根据你的Appium服务版本选择适当的协议和参数,你应该能够解决这个错误。记得将示例代码中的desired_caps
参数根据你的需求进行适当的修改。