使用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
相关产品推荐
相关产品推荐

