代码如下:
import time
from appium import webdriver
options = {
"platformName": "Android",
"platformVersion": "8.1.0",
"deviceName": "Nexus_6P",
"appPackage": "com.android.settings",
"appActivity": ".Settings",
"resetKeyboard": True,
"noReset": True
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", options=options) # 启动app
time.sleep(15)
报错如下:
Traceback (most recent call last):
File "D:\PDD\test.py", line 18, in <module>
driver = webdriver.Remote("http://localhost:4723/wd/hub", options=options) # 启动app
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\pythonEnv\android-8-nexus6p\Lib\site-packages\appium\webdriver\webdriver.py", line 229, in __init__
super().__init__(
File "D:\pythonEnv\android-8-nexus6p\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 185, in __init__
capabilities = options.to_capabilities()
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'to_capabilities'
原因:
是appnium 版本导致, Appium-Python-Client 3.0.0 版本更换了使用方式, 详情:点击前往
解决:
import time
from appium import webdriver
from appium.options.android import UiAutomator2Options
dic = {
"platformName": "Android",
"platformVersion": "8.1.0",
"deviceName": "Nexus_6P",
"appPackage": "com.android.settings",
"appActivity": ".Settings",
"resetKeyboard": True,
"noReset": True
}
options = UiAutomator2Options().load_capabilities(dic)
driver = webdriver.Remote("http://localhost:4723/wd/hub", options=options) # 启动app
time.sleep(15)
PS: 使用: from appium.options.android import UiAutomator2Options
对 参数dict 进行包装就可以了