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

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.WebDriver
    • Microsoft.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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:36:04