我正在使用 QTP 9.5 测试我用 Delphi 编写的应用程序。我安装了 Delphi 插件,QTP 可以识别 Delphi 控件。大多数但不是全部,特别是 TLabel。QTP 无法识别此控件并被 Object Spy 忽略。任何建议、提示、线索如何测试标签?
干杯!
您是否尝试过使用 TStaticText 而不是 TLabel?
它们是带有窗口句柄的标签(从 TWinControl 而不是 TGraphicControl 降序),这意味着它们可以从外部获取 Windows 消息。
我猜这是你的问题。(只是猜测,因为我不知道 QTP)
您可以为 QTP 编写自己的 Delphi 扩展器来处理这个问题。QTP 安装路径中应该有一个 pdf:C:\Program Files\HP\QuickTest Professional\help\Extensibility\DelphiExtensibility.chm 和 DelphiExtensibility.pdf。
它可以检测TSpeedButton之类的控件吗?如果没有,这可能表明 Qtp 无法检测到来自 TGraphicControl 的控件,因此没有窗口句柄。
如果您仍然必须“按原样”测试它,您可能必须采用更硬编码的方式来处理这些控件的父级。
QTP 中的窗口对象通过其方法允许查找包含文本的矩形区域,或单击找到的文本。如果它是屏幕上带有大量标签的区域,您可以将整个屏幕转储到文本文件并进行文本文件比较。您还可以在进行比较之前对检索到的文本进行规范化。
这种方法不太健壮,但如果动态计算矩形,您可以改进它,尽可能不使用硬编码点。