FlaUI:.NET 自动化测试 Windows 应用的强大工具

B站影视 2025-01-16 09:20 2

摘要:FlaUI 是一个基于微软 UIAutomation 技术的 .NET 库,主要用于对 Windows 应用程序(如 Win32、WinForms、WPF 等)进行自动化 UI 测试。它提供了强大的元素查找和交互功能,支持多种框架,并且易于使用和定制。内部采用

FlaUI 是一个基于微软 UIAutomation 技术的 .NET 库,主要用于对 Windows 应用程序(如 Win32、WinForms、WPF 等)进行自动化 UI 测试。它提供了强大的元素查找和交互功能,支持多种框架,并且易于使用和定制。内部采用异步调用以提高效率,社区也非常活跃。

1. 确保已安装 .NET 环境:FlaUI 需要 .NET 支持。

1. 获取主窗体varapp = Application.Launch("notepad.exe");
using(varautomation =newUIA3Automation)
{
varmainWindow = app.GetMainWindow(automation);
}2. 获取子窗体varprocesses = System.Diagnostics.Process.GetProcessesByName("notepad");
varid = processes.First.Id;
varapp = FlaUI.Core.Application.Attach(id);
varmainWindow = app.GetMainWindow(automation);
varchildWindow = FindWindowByAllChildren(mainWindow, "子窗体标题");3. 获取所有顶级窗体varprocesses = System.Diagnostics.Process.GetProcessesByName("notepad");
varid = processes.First.Id;
varapp = FlaUI.Core.Application.Attach(id);
varwindows = app.GetAllTopLevelWindows(automation).ToList;
varmainWindow = FindWindowByAllTopLevelWindows(windows, "主窗体标题");4. 获取桌面上的所有窗体推荐使用 XPath 获取元素,类似于网页中的 XPath,可以方便地定位界面中的任意元素。例如,//Document[@Name="文本编辑器"]可以定位到记事本中的文本编辑区域。1. 点击操作varbutton = mainWindow.FindFirstDescendant(cf => cf.ByText("按钮文本")).AsButton;
button.Click;2. 输入文本vartextBox = mainWindow.FindFirstDescendant(cf => cf.ByAutomationId("文本框AutomationId")).AstextBox;
textBox.Enter("输入的文本");3. 调用方法varmenu = mainWindow.FindFirstDescendant(cf => cf.ByText("菜单文本")).AsMenu;
menu.Invoke;4. 键盘操作Keyboard.Type("Hello FlaUI"); // 输入字符串
Keyboard.Press(VirtualKeyShort.BACK); // 按下 Backspace 键
Keyboard.Pressing(VirtualKeyShort.CONTROL); // 按下 Ctrl 键
Keyboard.Press(VirtualKeyShort.Key_A); // 按下 A 键
Keyboard.Release(VirtualKeyShort.CONTROL); // 释放 Ctrl 键
Keyboard.TypeSimultaneously(VirtualKeyShort.CONTROL, VirtualKeyShort.KEY_A); // 同时按下 Ctrl 和 A 键5. 鼠标操作Mouse.Click(button); // 点击按钮
Mouse.HorizontalScroll(40); // 水平滚动 40 个单位
Mouse.VerticalScroll(30); // 垂直滚动 30 个单位打开记事本并输入文本// See https://aka.ms/new-console-template for more information
usingFlaUI.Core;
usingFlaUI.Core.AutomationElements;
usingFlaUI.UIA3;

Console.WriteLine("Hello, World!");
varapp = Application.Launch("notepad.exe");
using(varautomation =newUIA3Automation)
{
varwindow = app.GetMainWindow(automation);
vartextBox = window.FindFirstDescendant(cf => cf.ByAutomationId("15")).AsTextBox;
textBox.Enter("Hello FlaUI");
}
app.Close;

来源:opendotnet

相关推荐