已知问题 - .NET WPF

本主题描述有关测试 .NET WPF 应用程序的疑难解答和限制。

对象标识

  • 使用对象侦测器(或在加载 .NET 插件后使用 .NET Windows Forms 侦测器)在 WPF 对象上进行侦测,而未将“录制和运行设置”对话框配置为在要侦测的目标 WPF 应用程序上录制时,UFT One 会将对象识别为标准 Windows 对象。

    变通方法: 关闭 WPF 应用程序。在 UFT One 中,打开“录制和运行设置”对话框(录制 > 录制和运行设置),并在“Windows 应用程序”选项卡中选择在任意基于 Windows 的应用程序上录制和运行测试选项。重新打开 WPF 应用程序,然后再次在其上进行侦测。

  • UFT One 不会将文本块元素视为 WPF 对象的子对象,如列表、树视图和表。因此,在您选择识别 WPF 对象及其子对象时,它们将不会以 ChildObjects 语句返回,也不会被识别为测试对象。

    如果要使用 WPF 对象的文本块元素,请使用 GetItem()GetItemProperty() 语句。

  • 在 Microsoft Windows 7 操作系统上侦测 WpfComboBox 控件时,要允许显示正确的所有项属性值,必须先手动展开和折叠组合框。

  • 要查看应用程序中的 .NET Windows Forms 对象的完整类型名称,请查看对象侦测器中的 SwfTypeName

    也可以通过使用以下语法运行语句来查看所选对象的基本类型的列表:

    MsgBox <SwfTestObj>(<descr>).GetROProperty("SwfTypeNames")  

    其中 SwfTestObj(<descr>) 是要检查的测试对象。运行此语句将导致打开一个消息框,在列表顶端显示实际类,在其下面显示基本类。

  • 如果将 Windows 计算机的“区域”设置设为未安装语言包的“格式”(语言),UFT One 将无法录制、运行或侦测 WPF 对象。

返回页首

录制

  • 使用低级录制来录制步骤时,Windows Presentation Foundation 测试对象的默认描述属性没有常量值。这可能会导致在运行会话期间出现不同的描述属性值,从而导致这些对象上的步骤失败。

  • 录制应用程序中的动态更改对象时,UFT One 将录制更改后对象(而非更改前的原始对象)的对象属性。这将导致使用此对象的运行会话失败。

    变通方法: 在编辑器中手动更改对象描述。

返回页首

识别打开的 .NET WPF 应用程序

如果您在两次 .NET WPF 测试运行之间已重新启动 UFT One,则在重新启动后再次运行测试时,UFT One 可能无法识别打开的应用程序。

为避免出现错误,请在 UFT One 计算机上添加以下注册表定义:

  1. 导航到 [HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\WpfPackage\Settings 注册表项

  2. 添加一个名为 ProcNoCleanup 的新子项。

  3. 将空字符串值添加到 [HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\WpfPackage\Settings\ProcNoCleanup 注册表项中。值的名称必须是应用程序的名称。

    例如: "MyApp.exe"=""

备注: 出于向后兼容性考虑,一些注册表项特意包括了以前的公司品牌。

提示: 要为多个进程启用此功能,请在这两个注册表项下添加采用相同格式的其他行。

返回页首

Windows 显示缩放 (DPI)

UFT One 版本 2023 及更高版本

无论您的 Windows 显示缩放设置如何,您都可以测试 WPF 应用程序。但是,我们建议您在使用以下方法时将缩放级别设置为 100%:

  • 运行 MouseMove 方法将鼠标指针移动到 WpfButton 对象的边缘上。

  • 运行 Click 方法以单击 WpfScrollBar 对象的边缘。

UFT One 版本 2022 及更早版本

使用非 100% 的 Windows 显示缩放可能会导致 UFT One 无法标识位于 WPF 应用程序正确位置的对象。

请参阅Windows 显示缩放 (DPI)

返回页首