【问题标题】:Is it possible to read data from Pane control type?是否可以从窗格控件类型中读取数据?
【发布时间】:2021-04-07 22:06:51
【问题描述】:

我已经开始使用 FlaUI 来自动化我的胖客户端 .net 应用程序。该应用程序是基于 Windows 窗体的。开始是好的,Login Form 被识别出来了,我可以登录了,但是之后就死路一条了,我发现应用程序中几乎所有的东西都是作为 Pane 控件类型开发的。

所以,有网格、表格等,但是当我使用 Inspect.exe 或 FLAUInspect 工具查看对象层次结构时,它们都只是显示为窗格类型。他们的财产中没有真正出现任何东西,所以似乎什么都无法读取。但在放弃之前,我只是想在这个论坛上与有经验的观众核实一下,是否真的有任何方法可以从 Pane 对象中获取数据。

请建议是否有任何方法,即使这意味着使用其他库,如 UIAutomation、TestStack.White 等。

更新:我现在对此了解不多。因此,窗格中的对象是在 syncfusion 和 devexpress 中开发的。是否可以使用 FlaUI 或 UIAutomation 或 TestStack.White 等识别在 syncfusion 和 devexpress 中开发的对象?

【问题讨论】:

  • 你解决了吗?
  • @FrancescoB。不,我无法解决它。

标签: c# ui-automation fla teststack flaui


【解决方案1】:

我不知道您是否已经尝试过以下步骤。您是否在 xaml 代码中将automationId 添加到您的对象中:

AutomationProperties.AutomationId="AnyID"

在测试代码中,首先初始化应用程序的主窗口。

MainWindow = fApplication.GetMainWindow(fAutomation, null)?.AsWindow()

之后你可以通过automationId找到你的对象,比如:

MainWindow .FindFirstDescendant(cf => cf.ByAutomationId(AnyID))

我是这样做的,不必知道我的应用程序的层次结构。也许这会起作用?

【讨论】:

    【解决方案2】:

    现在大多数 UI 框架都完全支持 UI 自动化。因此,首先确保您拥有框架的最新版本(syncfusion、devexpress)。此外,一些框架提供了启用 UI 自动化的设置。与 devexpress 一样,您需要设置

    ClearAutomationEventsHelper.IsEnabled = false;
    

    在您的应用程序开始时进行测试,以便向 FlaUI 公开更多内容(如选项卡)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多