ImportError:无法从appium.webdriver.webdriver导入AppiumOptions求助
解决Appium
ImportError: cannot import name 'AppiumOptions' 问题 错误原因
AppiumOptions的导入路径在不同版本的Appium Python客户端中存在差异:
- Appium Python客户端2.x版本已移除
AppiumOptions,改为分平台提供选项类(如Android的UiAutomator2Options) - 1.x版本无需单独的Options类,直接传入capabilities字典即可
解决方案
情况1:使用Appium Python客户端2.x版本
修改导入和capabilities初始化逻辑:
from appium import webdriver from typing import Any, Dict from appium.webdriver.common.appiumby import AppiumBy from appium.options.android import UiAutomator2Options # 替换原AppiumOptions导入 cap: Dict[str, Any] = { 'platformName': 'Android', 'deviceName': 'FLex', 'app': '/home/administrator/Downloads/FlexQa.apk', 'appPackage': 'com.flexsalary', 'automationName': 'UiAutomator2' } url = 'http://127.0.0.1:4723/' # 使用UiAutomator2Options加载capabilities driver = webdriver.Remote(url, options=UiAutomator2Options().load_capabilities(cap)) el = driver.find_element(by=AppiumBy.XPATH, value='//android.widget.Button[@content-desc="ApplyNow"]') el.click() driver.quit()
情况2:使用Appium Python客户端1.x版本
移除AppiumOptions相关代码,直接传入capabilities字典:
from appium import webdriver from typing import Any, Dict from appium.webdriver.common.appiumby import AppiumBy cap: Dict[str, Any] = { 'platformName': 'Android', 'deviceName': 'FLex', 'app': '/home/administrator/Downloads/FlexQa.apk', 'appPackage': 'com.flexsalary', 'automationName': 'UiAutomator2' } url = 'http://127.0.0.1:4723/' # 直接传入capabilities字典 driver = webdriver.Remote(url, desired_capabilities=cap) el = driver.find_element(by=AppiumBy.XPATH, value='//android.widget.Button[@content-desc="ApplyNow"]') el.click() driver.quit()
额外检查
- 执行
pip show appium-python-client查看客户端版本,匹配对应方案 - 确保Appium Server与客户端版本兼容
内容的提问来源于stack exchange,提问作者Nirmal
相关产品推荐
相关产品推荐

