亚洲国产第一_开心网五月色综合亚洲_日本一级特黄特色大片免费观看_久久久久久久久久免观看

Hello! 歡迎來到小浪云!


FlaUI:.NET 自動化測試 Windows 應(yīng)用的強(qiáng)大工具


avatar
小浪云 2025-05-23 13

FlaUI:.NET 自動化測試 Windows 應(yīng)用的強(qiáng)大工具

Flaui 是一個基于微軟 UIAutomation 技術(shù)的 .NET 庫,主要用于對 Windows 應(yīng)用程序(如 Win32、WinForms、wpf 等)進(jìn)行自動化 UI 測試。它提供了強(qiáng)大的元素查找和交互功能,支持多種框架,并且易于使用和定制。內(nèi)部采用異步調(diào)用以提高效率,社區(qū)也非常活躍。

安裝

  1. 確保已安裝 .NET 環(huán)境:FlaUI 需要 .NET 支持。
  2. 添加 NuGet 包:在 visual studio 中右擊解決方案,選擇“管理 NuGet 包”,搜索并安裝 FlaUI.Core、FlaUI.UIA2 和 FlaUI.UIA3。

獲取窗體

  1. 獲取主窗體

    var app = Application.Launch("notepad.exe"); using (var automation = new UIA3Automation()) {  var mainWindow = app.GetMainWindow(automation); }
  2. 獲取子窗體

    var processes = System.Diagnostics.Process.GetProcessesByName("notepad"); var id = processes.First().Id; var app = FlaUI.Core.Application.Attach(id); var mainWindow = app.GetMainWindow(automation); var childWindow = FindWindowByAllChildren(mainWindow, "子窗體標(biāo)題");
  3. 獲取所有頂級窗體

    var processes = System.Diagnostics.Process.GetProcessesByName("notepad"); var id = processes.First().Id; var app = FlaUI.Core.Application.Attach(id); var windows = app.GetAllTopLevelWindows(automation).ToList(); var mainWindow = FindWindowByAllTopLevelWindows(windows, "主窗體標(biāo)題");
  4. 獲取桌面上的所有窗體 獲取元素推薦使用 XPath 獲取元素,類似于網(wǎng)頁中的 XPath,可以方便地定位界面中的任意元素。例如,//Document[@Name=”文本編輯器”] 可以定位到記事本中的文本編輯區(qū)域。

元素操作

  1. 點(diǎn)擊操作

    var button = mainWindow.FindFirstDescendant(cf => cf.ByText("按鈕文本")).AsButton(); button.Click();
  2. 輸入文本

    var textBox = mainWindow.FindFirstDescendant(cf => cf.ByAutomationId("文本框AutomationId")).AsTextBox(); textBox.Enter("輸入的文本");
  3. 調(diào)用方法

    var menu = 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. 鼠標(biāo)操作

    Mouse.Click(button); // 點(diǎn)擊按鈕 Mouse.HorizontalScroll(40); // 水平滾動 40 個單位 Mouse.VerticalScroll(30); // 垂直滾動 30 個單位

示例 打開記事本并輸入文本

// See https://aka.ms/new-console-template for more information using FlaUI.Core; using FlaUI.Core.AutomationElements; using FlaUI.UIA3;  Console.WriteLine("Hello, World!"); var app = Application.Launch("notepad.exe"); using (var automation = new UIA3Automation()) {     var window = app.GetMainWindow(automation);     var textBox = window.FindFirstDescendant(cf => cf.ByAutomationId("15")).AsTextBox();     textBox.Enter("Hello FlaUI"); } app.Close();

相關(guān)閱讀