UI自动化测试辅助工具

FlaUI ScreenReader MCP Server 是一个概念验证实现,用于提取UIA3自动化树并与UI应用程序进行基本交互,以支持AI在创建端到端UI测试时的辅助工作。

  • by Rotbarsch
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 Rotbarsch/FlaUI-Screenreader-MCP

使用说明

FlaUI屏幕阅读器MCP服务器

这是MCP(模型上下文协议)服务器的概念验证(PoC)实现,用于提取UIA3自动化树和与UI应用程序的基本交互,以便使AI能够在创建E2E UI测试期间提供支持。

使命宣言

该项目旨在通过为代理提供UI的自动化树表示来简化UI测试的创建,最大限度地减少AI幻觉,并为代理提供必要的上下文。

可用工具

屏幕阅读器工具

GetAutomationTreeOfProcess:返回所选流程的UIA3自动化树的相关信息。接受进程名称(不带.exe!)作为参数。

Ui互动工具

突出显示:用红色突出显示由提供的自动化ID或名称标识的元素,该元素属于提供的流程,持续30秒。

Clickelement:单击由提供的自动化ID或名称标识的元素,该元素属于提供的红色进程,持续30秒。

选择项目元素:在由Automation Id或Name标识的组合框中选择一个项目(由其文本标识),该项目属于提供的流程。

使MCP服务器可供AI代理使用

带有GitHub Copilot扩展的Visual Studio代码

假设您在Visual Studio Code中安装了GitHub Copilot扩展,您可以按如下方式配置它以使用MCP服务器:

  1. 如果尚未打开,请打开GitHub Copilot聊天,例如按 CTRL+ALT+I 或者为您的环境配置的任何快捷方式。
  2. 确保GitHub Copilot在聊天窗口左下角设置为“Agent”。
  3. 单击聊天底部模型选择旁边的扳手和螺丝刀小图标。在Visual Studio代码窗口的顶部,将打开可用MCP服务器的列表。
  4. 单击可用MCP服务器列表顶部标记为“添加MCP服务器…”的小图标。
  5. 接下来,选择“命令(stdio)”。
  6. 在提示中输入以下命令并确认:
dnx Rotbarsch.FlaUiScreenReaderMcp --yes
  1. 为您的配置输入一个唯一且信息丰富的名称,例如“ReqnRoll MCP服务器”。
  2. 名为的文件 mcp.json 位于您的 %APPDATA%/Code/User 目录将打开。它应该看起来像这样:
{
	"servers": {
		"FlaUiScreenReaderMcp": {
			"type": "stdio",
			"command": "dnx",
			"args": [
				"Rotbarsch.FlaUiScreenReaderMcp",
				"--yes"
			]
		}
	},
	"inputs": []
}
  1. 保存文件。注意小 Start JSON节点顶部的提示,描述您新添加的MCP服务器。单击它以启动服务器。如果出现任何问题,Visual Studio Code将显示服务器的控制台输出以及详细的堆栈跟踪。
  2. 再次单击扳手和螺丝刀图标现在将显示您的MCP服务器。如果旁边的复选框未选中,请选中它。
  3. GitHub Copilot现在可以使用了。尝试用以下方式提示:
Which buttons are currently enabled in application 'awesometool'?
  1. 在首次使用特定功能(在MCP世界中称为“工具”)之前,聊天将通过提示请求您的许可。 确认该提示后,您应该得到一个答案,其中列出了定义程序集中所有可用的ReqnRoll绑定。

Visual Studio与GitHub Copilot

  1. 打开“GitHub Copilot聊天”窗口。
  2. 点击聊天窗口右下角标有“选择工具”的小扳手图标。打开可用MCP服务器列表。
  3. 单击工具列表右上角的绿色小加号。将打开一个新对话框。
  4. 填写对话框:
  • 目标:选择服务器是全局可用还是仅在当前解决方案中可用。
  • 服务器ID:为您的配置输入一个唯一且信息丰富的名称,例如“ReqnRoll MCP服务器”。
  • 类型:选择“stdio”。
  • 命令:输入 dnx Rotbarsch.FlaUiScreenReaderMcp --yes.
  1. 单击“保存”。MCP服务器现在已添加到可用工具列表中。
  2. GitHub Copilot现在可以使用了。尝试用以下方式提示:
Which buttons are currently enabled in application 'awesometool'?
  1. 在首次使用特定功能(在MCP世界中称为“工具”)之前,聊天将通过提示请求您的许可。 确认该提示后,您应该得到一个答案,其中列出了定义程序集中所有可用的ReqnRoll绑定。

许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。

对第三方的依赖

有关依赖项许可证的信息可以在 第三方通知 文件。