使用Selenium4.9.1与Appium.WebDriver4.4.5创建驱动遇CS7069错误求助
错误原因分析
CS7069错误本质是版本依赖冲突:Selenium WebDriver 4.x系列已经移除了IFindsById这类旧的定位接口,而你使用的Appium.WebDriver 4.4.5版本仍依赖这些已被移除的接口,导致编译器找不到对应的类型定义。
解决步骤
1. 对齐版本兼容性
Appium.WebDriver和Selenium WebDriver的版本必须严格匹配,建议选择以下两种方案之一:
- 方案一:升级Appium.WebDriver:将Appium.WebDriver升级到与Selenium 4.9.1兼容的版本(比如最新稳定版,或至少5.x以上版本,这类版本已适配Selenium 4.x的接口变更)。
- 方案二:降级Selenium WebDriver:如果暂时不想升级Appium,可将Selenium WebDriver降级到Appium.WebDriver 4.4.5支持的版本(比如Selenium 3.141.0系列,这是Appium 4.x版本的标准依赖版本)。
操作方式:在NuGet包管理器中找到对应包,选择合适版本重新安装即可。
2. 清理NuGet缓存并重建项目
版本调整后,执行以下步骤避免缓存干扰:
- 清理NuGet本地缓存:在Visual Studio中依次点击「工具」→「选项」→「NuGet包管理器」→「常规」→「清空所有NuGet缓存」。
- 右键项目选择「清理」,再选择「生成」重新编译项目。
3. 移除旧的过时引用
检查项目的引用列表,确保没有残留的旧版Selenium相关包(比如Selenium.Support旧版本),如果有则卸载并重新安装对应兼容版本。
正确创建Appium AndroidDriver的示例代码
调整版本后,使用标准方式初始化驱动即可,无需依赖IFindsById这类过时接口:
using OpenQA.Selenium.Appium; using OpenQA.Selenium.Appium.Android; using System; public class AppiumTest { // 声明驱动实例 static AndroidDriver<AndroidElement> appiumDriver; public static void InitializeDriver() { // 配置Desired Capabilities AppiumOptions options = new AppiumOptions(); options.AddAdditionalCapability("platformName", "Android"); options.AddAdditionalCapability("deviceName", "你的设备名称或模拟器ID"); options.AddAdditionalCapability("appPackage", "目标应用的包名"); options.AddAdditionalCapability("appActivity", "目标应用的启动Activity"); // 若需要指定本地App路径,添加以下配置 // options.AddAdditionalCapability("app", @"C:\path\to\your\app.apk"); // 初始化驱动,连接本地Appium服务(默认端口4723) appiumDriver = new AndroidDriver<AndroidElement>(new Uri("http://localhost:4723/wd/hub"), options); } public static void ExampleOperation() { // 使用标准定位方法,替代旧的IFindsById接口 var loginButton = appiumDriver.FindElement(By.Id("com.example.app:id/button_login")); loginButton.Click(); } }
注意:确保Appium服务已通过appium命令启动,且目标设备已通过adb devices确认连接正常。
内容的提问来源于stack exchange,提问作者Ragini
相关产品推荐
相关产品推荐

