You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用WinAppDriver做Windows桌面自动化时遇CS7069错误求助

解决WinAppDriver中CS7069错误(IFindsByTagName未找到)

问题原因

你的错误源于NuGet包版本冲突,核心是旧版DotNetSeleniumExtras.PageObjects(3.11.0)与新版Selenium.WebDriver(4.3.0)不兼容。旧版PageObjects包依赖Selenium 3.x的类型定义,而Selenium 4.x已移除/重构了IFindsByTagName这类接口,导致类型引用混乱。

解决方案

1. 移除冲突的NuGet包

删除以下不兼容的第三方扩展包:

  • DotNetSeleniumExtras.PageObjects(3.11.0)
  • DotNetSeleniumExtras.PageObjects.Core(4.3.0)

Selenium 4.x已内置页面对象相关功能,无需依赖这些第三方包。

2. 统一Appium与Selenium版本

确保Appium.WebDriver和Selenium.WebDriver版本严格兼容:

  • 当前Appium.WebDriver 4.3.2与Selenium.WebDriver 4.3.0理论兼容,若问题仍存在,可升级Appium.WebDriver到4.4.0(匹配Selenium 4.4.0),或降级到稳定组合:Appium.WebDriver 4.2.1 + Selenium.WebDriver 4.2.0

3. 清理项目并重新还原依赖

  • 删除项目目录下的bin和obj文件夹
  • 在NuGet包管理器中执行还原操作,确保所有依赖包正确安装

4. 修正代码(页面对象模型替代方案)

如果需要使用页面对象模式,改用Selenium 4原生实现,示例:

public class CalculatorPage
{
    private readonly WindowsDriver<WindowsElement> _driver;

    public CalculatorPage(WindowsDriver<WindowsElement> driver)
    {
        _driver = driver;
    }

    private WindowsElement OneButton => _driver.FindElement(By.Name("One"));

    public void ClickOne() => OneButton.Click();
}

5. 精简命名空间引用

确保代码只保留必要的命名空间,避免类型冲突:

using System;
using NUnit.Framework;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Windows;

验证修改

重新编译项目,WindowsDriver<WindowsElement>相关的CS7069错误应会消失。若仍有问题,检查是否存在未清理的旧手动引用或残留依赖文件。

内容的提问来源于stack exchange,提问作者Call of Craig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:48:51