C# FlaUI 个人使用记录
项目地址 https://github.com/FlaUI/FlaUI/wiki/FAQ
可以通过nuget导入该库,在nuget中搜索包FlaUI.UIA3
其实有两个包
FlaUI.UIA2
FlaUI.UIA3
我用的是FlaUI.UIA3
假如被测试程序是管理员权限那么进行测试的程序也要以管理员权限运行,32bit与64bit的进程区别是否有影响暂不清楚
可以使用 FlaUInspect.exe 来查看被测试进程的控件Name Xpath,该程序最好也已管理员运行
我自己使用该程序会出现不显示具体的控件,解决办法就是使用拾取控件功能
选中该选项然后按住 Ctrl 键的同时鼠标点击被测试程序的目标控件
注意该程序显示的Xpath是基于桌面的或者说"根"是桌面?
我们也可以通过从桌面开始搜索控件,我自己遇到过从被测程序主窗口搜索搜不到的情况
例如搜索进程ID为15672控件类型为按钮且控件名字是"删除"的元素
using (var automation = new UIA3Automation()) { var vs = automation.GetDesktop().FindAllDescendants(ws => ws.ByName("删除").And(ws.ByControlType(FlaUI.Core.Definitions.ControlType.Button)).And(ws.ByProcessId(15672))); vs[0].AsButton().Click(); }
上面的示例我使用了组合条件
Name的值可以通过 FlaUInspect.exe 查看
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构