QTP如何等待页面加载动态数据?

2023-12-30

我有一个场景,浏览器状态=完成,但页面仍未加载。 是否有一个常见的程序可以让 qtp 等待页面完全加载? 我尝试使用 objBrowzer.sync,objPage.Sync,objPage.waitproperty "readyState","completed",50。 但它并不总是有效。

我什至不能只有一个等待语句,以便它等待直到该对象出现。因为在不同的情况下存在不同的对象。 是否存在适用于所有场景的通用声明?

提前致谢。


您刚刚发现 QTP 不提供任何与异步浏览器脚本执行同步的显式支持就像 AJAX 驱动的网站一样。当 QTP 认为页面已完全加载时,实际上仍然有 JavaScript 处理程序在运行,可能会更新用于页面的 HTML,并且 QTP 会提前访问 GUI。

readyState这是一个好主意,但通常很容易找到效果不够好的情况。

1. 最好的解决方案是在应用程序的“繁忙”指示器上进行同步,如进度条或活动指示器。

不幸的是,等待繁忙指示器意味着繁忙指示器确实总是出现,但许多应用程序仅在该过程花费足够长的时间(超过 2 秒等)时才会显示繁忙指示器。然后,这很快就会变得比预期的更混乱。

2. 如果应用程序没有这样的东西,通常您可以通过同步一些“就绪”指示器来帮助自己,例如“出现了预期的字段”或“确定按钮消失了”。如果没有真正的“就绪”指示器(通常不存在),这通常需要针对每种情况制定特定的解决方案。

3. 在许多项目中,自动化人员可以在应用程序中为他们内置一个忙碌指示器。虽然这不会给开发人员带来很多工作量(因为现代应用程序有一个中央消息调度程序,因此可以轻松地集中跟踪“忙”到“空闲”状态和 vv 的转换),但它极大地简化了所需的工作量用于同步。

因此,如果可能的话,尝试联系开发人员并让他们提供测试机器人“同步”例程可以轻松轮询的属性(变量、内存映射文件、信号量,无论他们喜欢什么)。 (提示:为了能够区分两个“就绪”状态,即使在“丢失”这两个状态之间的“忙碌”状态之后,除了“忙碌状态标志”之外,获取连续的“忙碌状态计数”可能会有所帮助,因此您可能会在同一场合提出请求。)然后,所有同步问题都是应用程序中的缺陷,因为它显然没有正确维护就绪信号。

Update对于基于事实上的“标准”框架的应用程序,人们可能会找到以通用方式实现同​​步的方法。

例如,对于 JavaScript 应用程序,我设法创建了一种工具,可以透明地将事件流报告给 QTP,该工具用于等待“足够长的时间”,使人们能够设置特殊的类似检查点的库调用来等待某些事件(尤其是“单击”,以及对于执行 AJAX 往返操作的应用程序,如 Java Server Pages、“ajaxstop”事件),请在继续之前完成。

事实证明这非常有用,因为通常情况下,让开发人员实现对测试自动化需求的任何类型的支持都非常复杂,并且如果应用程序基于 GUI 的同步(仅通过测试对象状态/存在)有时是不够的在后台执行异步请求。它还消除了为每个 GUI 上下文探索同步选项的需要,这可能非常耗时和/或不可靠。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QTP如何等待页面加载动态数据? 的相关文章

  • qtp的基本使用方法(1)

    1 action qtp为每一个action生成相应的测试文件和目录 对象库也是和action绑定的 用action 来划分和组织测试流程 编辑action 修改action的名字 action properties 增加action in
  • 仅检索数字并忽略字符串中的字母

    我有 10A 或 20B 之类的琴弦 我想要 10A 中的 10 个或 20B 中的 20 个 如何使用 VBScript 或 QTP 内部命令仅从字符串中分割数字 我会使用正则表达式 s 20B Set re New RegExp re
  • 将 vbCrLF 附加到 UCS-2 Little Endian

    我通过 HP UFT 以前的 QTP 使用 vbscript 我面临的问题看起来很简单 但我无法解决 我有从某些系统导出的 CSV 文件 并且该文件中没有完成的 CRLF 我需要一个简单的修复append该文件的新行 我知道这是可能的写入另
  • QTP 中的 RO 属性和 TO 属性有什么区别?

    在QTP中每个测试对象都支持以下方法 GetRoProperty GetToProperty SetToProperty GetToProperties 和有什么区别RO 财产和TO property 为什么我只能设置一个TO 财产而不是R
  • 使用 VB 脚本对字符串和数字进行排序

    如何使用 VB 脚本对带有数值的字符串进行排序 以下是表中每一行的字符串 12 月 2 日测试 1 通过 测试 3 失败 测试 2 于 6 月 4 日通过 已验证 测试10通过 用户已接受 我想在排序后按以下顺序 自然顺序 12 月 2 日
  • EmbedScriptFromFile 和 RunScriptFromFile - QTP/UFT

    请帮助我使用EmbedScriptFromFile RunScriptFromFile用于在QTP UFT中执行JS文件 我正在尝试使用 JS 文件获取 N 个值 并在数组中的 QTP UFT 中接收相同的值 为此 我必须了解EmbedSc
  • 如何在 IE 中安装“BHOManager CLASS”插件

    这个 BHOManager CLASS 插件是一个在IE浏览器上运行QTP脚本的支持插件 该附加组件的发行商是 Mercury Interactive Corp 由于我的机器出现一些问题 我已经卸载了现有的 IE 浏览器并重新安装了它 此后
  • 在虚拟机上自动进行测试,无需图形会话

    语境 我在 Windows 上运行并使用 UFT Ranorex 在虚拟机 很少 上执行自动化 GUI 测试 执行由 Jenkins 进行试点 Problem VM 必须有一个活动的graphic会话 否则 UFT 将不会运行 GUI 测试
  • 从其他应用程序调试 C# 代码

    我正在从 QTP 加载 dll c qtp测试开始时是否可以调试c 代码 是的 您可以调试 dll 但是您将需要源代码 除非您想查看反汇编 并且您还需要程序集的 PDB 调试符号 设置起来非常简单 启动QTP应用程序 启动视觉工作室 打开源
  • 使用 Web 插件时,UFT 如何执行 Click 方法?

    我正在使用 UFT 11 50 在 Internet Explorer 8 0 上测试高度基于 javascript 的应用程序 我想知道使用 Web Add In 时 UFT 如何在后台实现 Click 方法 UFT 是否发送 Windo
  • 我可以确定当前的测试执行人员是来自测试实验室还是来自 QTP IDE 中的交互式测试?

    检查当前 QTP 测试执行是否是交互式的 即不是从 QC 测试实验室启动的 QC 测试集执行的一部分 的最有效方法是什么 你们知道一个很酷的方法吗 WR 曾经有一个批处理运行标志 对于 IDE 内的所有执行 该标志都会被可靠地清除 也许QT
  • QTP 与 Selenium - 比较 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个使用 net 技术创建的应用程序 产品 该产品有一个 GUI 它使用 Web API 应用程序服务器上的 SOAP 连接到数据库 大多数
  • 我们可以通过保持会话最小化来在远程计算机上执行 QTP 脚本吗

    我有几台机器 我希望在上面安排执行 我需要远程访问这些机器才能执行 每当我从这些机器开始执行并最小化会话时 我的脚本都会失败 所以只是想知道 QTP 脚本是否可以在保持会话最小化的同时执行 如果是 需要在脚本中进行哪些更改 谢谢 当您最小化
  • QTP如何等待页面加载动态数据?

    我有一个场景 浏览器状态 完成 但页面仍未加载 是否有一个常见的程序可以让 qtp 等待页面完全加载 我尝试使用 objBrowzer sync objPage Sync objPage waitproperty readyState co
  • Mercury Quick Test Pro 和虚拟机:可以在一台客户端计算机上运行,​​但不能在另一台客户端计算机上运行

    我有一台安装了 Mercury Quick Test Professional 9 2 的虚拟机 VMware 我有一个用于测试应用程序的脚本 该脚本是使用 Infragistics 库用 VB NET 编写的 如果我使用笔记本电脑 使用远
  • 如何在QTP中测试标签

    我正在使用 QTP 9 5 测试我编写的应用程序 德尔福 我安装了 Delphi Add in 和 QTP 可以识别Delphi控件 大多数但不是全部 特别是 TLabel QTP无法识别这个 控制并被对象间谍忽略 关于如何测试标签有什么建
  • 为什么设置 USER 环境变量需要 12 秒?

    使用以下代码 我经历了可怕的运行时 Option Explicit Dim ShellEnvironment Set ShellEnvironment CreateObject WScript Shell Environment USER
  • 使用或不使用“执行”语句在 UFT 中设置对象引用

    最近 我被分配了一个项目 其中使用 执行 语句设置对象引用 如下所示 Execute Set objButton XamRibbonWindowAddin XamWindow DashBoard WpfButton Save 然而 我设置对
  • 如何在独立的 .vbs 文件中从 VBScript 调用 DotNetFactory?

    我一直在探索扩展 QuickTest Professional 脚本编写功能的选项 并发现今天早上 所以我决定尝试一下 下面的代码在 QTP 环境中执行时工作正常 但我也可以看到它在 QTP 环境之外的用途 不幸的是 从独立的 vbs 文件
  • 使用 qtp 功能单击特定链接

    我想通过创建一个在操作中调用的函数来自动执行 Flipkart 的登录过程 Function Website this is the function Systemutil Run iexplore exe http www flipkar

随机推荐