我已经开始使用FlaUI来自动化我的胖客户端.net应用程序。应用程序是基于Windows窗体的。开始是好的,Login Form被识别出来了,我可以登录了,但在那之后出现了死胡同,我发现应用程序中几乎所有的东西都是作为Pane控件类型开发的。
因此,有网格、表格等,但当我使用Inspect.exe或FLAUInspect工具看到对象层次结构时,它们都显示为Pane类型。并且没有任何内容真正出现在其属性中,因此似乎没有任何内容可以读取。但在放弃之前,我只是想在这个论坛上与有经验的读者核实一下,看看是否真的有任何方法可以从Pane对象中获得数据。
请建议是否有任何方法,即使这意味着使用其他库,如UIAutomation,TestStack.White等。
更新:我现在对此知之甚少。因此,窗格中的对象是在syncfusion和devexpress中开发的。是否可以使用FlaUI、UIAutomation或TestStack.White等识别在syncfusion和devexpress中开发的对象?
发布于 2021-03-23 23:19:59
我不知道您是否已经尝试过以下步骤。您是否使用以下命令向xaml代码中的对象添加了automationId:
AutomationProperties.AutomationId="AnyID"在测试代码中,首先初始化应用程序的主窗口。
MainWindow = fApplication.GetMainWindow(fAutomation, null)?.AsWindow()在此之后,您可以通过自动‘s查找您的对象,如下所示:
MainWindow .FindFirstDescendant(cf => cf.ByAutomationId(AnyID))我是这样做的,不需要知道我的应用程序的层次结构。也许这能行得通?
发布于 2021-04-07 22:06:52
目前大多数UI框架都完全支持UI自动化。因此,首先要确保您拥有最新版本的框架(syncfusion、devexpress)。此外,一些框架还提供了启用UI自动化的设置。与devexpress类似,您需要设置
ClearAutomationEventsHelper.IsEnabled = false;在应用程序开始时进行测试,以便向FlaUI公开更多内容(如选项卡)。
https://stackoverflow.com/questions/60415474
复制相似问题