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 查看

 

posted @ 2023-02-01 17:32  FfD4edyo  阅读(997)  评论(0编辑  收藏  举报