【问题标题】:Silk Test doesn't identify WPF control hosted in Windows Forms hostSilk Test 无法识别 Windows 窗体主机中托管的 WPF 控件
【发布时间】:2014-07-12 13:22:12
【问题描述】:

我有一个简单的 WPF 用户控件:

<StackPanel>
    <Button>Test</Button>
    <TextBox>Test</TextBox>
    <TextBlock>Test</TextBlock>
</StackPanel>

我在 Windows 窗体主机中托管此用户控件。 Silk Test 仅将整个用户控件标识为 Element-Host,并且无法标识单个按钮或文本框。

有没有人对此有更深入的了解? Silk Test 是否支持此方案?

更新:

我在 Silk Test 14.0 上收效甚微(之前我有 13.5)。创建了具有类似结构的测试应用程序(Windows 窗体主机中的 WPF 控件)并使用 Silk Test 14.0 检查。它能够检测 user-control 中的所有单独的 WPF 控件。但是对于我的应用程序,除了“工具栏”中的 2 个组合框外,它仍然无法检测到控件。在用户控件中,我使用的是从 Data-grid 类派生的自定义网格

【问题讨论】:

  • 顺便说一句,已经有 Silk Test 15 Update 1 可用。如果 14 不适合您,您可能需要尝试最新版本。
  • 是的,我尝试过 Silk Test 15 Update 1,但没有成功

标签: c# wpf winforms silktest


【解决方案1】:

这应该可行。

这可能取决于您如何嵌入UserControl

在我们用于测试的应用程序中,它包含在 Windows 窗体 ElementHost-control 中。 在代码隐藏中,您应该看到ElementHostUserControl 的成员声明,​​是这样吗?

您的应用程序是否使用多个AppDomains? Silk Test 目前仅支持 Windows 窗体的多个 AppDomain,不支持 WPF,因此这可能是它不适合您的另一个原因。

【讨论】:

  • 不,应用程序没有使用多个 AppDomain。是的,成员在“Designer.cs”文件中声明,我可以在代码隐藏文件中访问它们。编辑一些观察/更新的问题
【解决方案2】:

我不太了解 Silk Test,但在我看来,此工具仅支持独立的 WPF 应用程序。在您的情况下,有一个带有嵌入式 WPF 控件的独立 WinForms 应用程序。文档说:

Silk Test Workbench 为测试 Windows Presentation Foundation (WPF) 应用程序提供内置支持。 Silk Test Workbench 支持独立 WPF 应用程序,并且可以录制和播放嵌入在 .NET 3.5 或更高版本中的控件。

【讨论】:

  • "[...] 并且可以录制和播放嵌入在 .NET 3.5 或更高版本中的控件。" - 我相信这应该意味着它也适用于嵌入式控件,尽管措辞可能模棱两可。
【解决方案3】:

Silk Test 团队已确定这是一个错误。修复可能会作为 Silk Test 15.5 版本的补丁发布。一旦我对它的发布有更好的细节,我会更新这篇文章。

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多