MS Visual Studio配合WinAppDriver+Appium实现Windows计算器自动化测试失败
问题根因
你当前使用的Unit Test App ( Universal Windows )项目模板不适用于WinAppDriver桌面自动化测试:该模板是专为UWP应用内部单元测试设计,运行在UWP沙箱环境中,没有权限启动外部桌面程序,也无法正常调用WinAppDriver服务完成UI操作。
修正配置步骤
- 更换项目模板
删除现有UWP测试项目,重新在Visual Studio中创建单元测试项目(.NET Framework) 或xUnit/NUnit测试项目(.NET Core/.NET 6+),不要选择任何UWP相关的测试模板。原有CalculatorSession.cs、ScenarioStandard.cs的测试逻辑可直接迁移到新项目中,无需大幅修改。 - 安装依赖包
右键项目→管理NuGet包,搜索安装以下两个依赖:Appium.WebDriverMicrosoft.WinAppDriver.Appium.WebDriver(可选,WinAppDriver专属适配扩展)
- 提前启动WinAppDriver服务
手动运行安装好的WinAppDriver.exe(默认安装路径为C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe),确认服务在http://127.0.0.1:4723端口正常监听。 - 验证启动参数配置
检查CalculatorSession.cs中的计算器启动配置,确保能力参数填写正确,参考示例如下:var appCapabilities = new DesiredCapabilities(); // 计算器的AUMID,不同系统版本如果不匹配可自行通过PowerShell查询 appCapabilities.SetCapability("app", "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"); appCapabilities.SetCapability("deviceName", "WindowsPC"); var calculatorSession = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), appCapabilities); // 配置隐式等待避免元素查找超时 calculatorSession.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(3); - 调整测试触发方式
不要直接按F5启动测试项目,打开Visual Studio顶部菜单→视图→测试资源管理器,点击「运行所有测试」按钮触发用例执行即可。
额外排查点
- 如果计算器启动失败,可在PowerShell中执行
get-StartApps | findstr 计算器查询你系统中计算器的正确AUMID,替换代码中的对应参数 - 建议Visual Studio和WinAppDriver都用管理员权限启动,避免权限不足导致的操作失败
内容的提问来源于stack exchange,提问作者MAHESWARAN T
相关产品推荐
相关产品推荐

