问题标签 [hp-uft]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qtp - 如何获取测试对象的逻辑名称(存在于关联的共享 OR 中)?
假设我将 a 传递Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox")
给一个函数:
稍后,该函数想要记录接收到的测试对象的逻辑名称(在这种情况下,当然是“MyBox”)。
它怎么可能做到这一点?
如果您重新添加测试对象,“名称”测试对象属性会返回构建的名称。 逻辑名称没有(记录的)测试对象属性。 运行时对象属性不可能包含名称,因为它不是来自 AUT GUI 的名称。
所以我认为测试对象不知道它的名字。只有存储库“知道”测试对象存储在哪个名称下。
所以我将不得不检查存储库本身,而不是测试对象。
ObjectRepositoryUtil
API 允许我(通过或GetChildren
其他方法)在存储库的测试对象集合中找到测试对象,并使用该GetLogicalName
方法获取其名称。美好的。
但是让它工作的唯一方法是通过加载它来获取对存储库的引用。我的印象是这个 API 旨在从 QTP 外部而不是在测试运行中操作(或分析)存储库。我不想重新加载存储库。我想在已加载的存储库之一中查找测试对象。
API 可以告诉我哪些已加载(通过它们的RepositoriesCollection
名称和路径),但它不提供获取对代表其中一个存储库的对象实例的引用的方法。
那么如何获得对已加载存储库的引用,以便我可以使用GetLogicalName
?
或者一般问:给定对包含在当前操作的共享存储库中的“正常”测试对象的引用,我如何以编程方式找出它的逻辑名称?
如果有一些超级明智的 QTP 向导 a la Motti 知道这是不可能的,我真的很感激他的回答,即使它显示“它不能完成”如果这是真的。
regex - 寻找非零属性 TO:我可以将描述与数字属性匹配,但使用正则表达式匹配吗?
我如何在不迭代的情况下,即使用.ChildObjects
- 将所有测试对象与数字属性中的任何非零值匹配?
包含的问题:我可以使用正则表达式匹配来匹配包含 a 的属性值number
(即,为此属性的 getROProperty 值VarType
返回 3 ( ))使用正则表达式匹配吗?vbLong
我不这么认为。
例如:
匹配我的 Web 应用程序中的一些控件,即Page.ChildObjects (Descr).Count > 0
.
但是将其分配11
为字符串,即将高度线更改为:
匹配零控件。
这非常糟糕,因为因此,我无法查找height
不等于 0 的测试对象。这正是我所需要的。
我会用
搜索具有非零height
值的所有实例,但由于字符串搜索不匹配,因此正则表达式匹配也不起作用。(事实上,它确实没有)。
qtp - 如何根据当前报表节点获取运行结果状态?
例如,假设一个测试调用了两个动作,A 和 B。A 通过调用“”执行“失败”步骤,B 通过调用“ "Reporter.ReportEvent micFail, ...
”执行“通过”步骤"Reporter.ReportEvent micpass, ...
Reporter.RunStatus
一旦在 A 中执行了失败的步骤,就会立即返回micFail
。所以即使在 B 中,B 的状态完全是“绿色”,也无法判断在“B”分支中没有“失败”步骤当下。"上报的试运行状态Reporter.RunStatus
是micFail
从那时起。
那么如何获取当前“分支”的运行状态呢?
我认为我正在寻找的是当前或当前父级 Reporter 节点的颜色(即运行状态)。
testing - UFT 在某些播放中未识别窗口
我在 UFT 中使用描述性编程。在播放过程中,我想检查是否出现了 Windows 打印对话框。然后我想单击该对话框中的取消按钮。我的问题:偶尔 QTP 无法识别打印对话框,因此单击取消按钮失败。这怎么可能有时失败,有时成功?
我的代码语法如下:
vbscript - 在 QTP 中使用 VBS 比较两个 xml 文件
我需要使用 QTP 比较 2 个 xml 文件,其中每个标签的值需要进行比较,如果找到,需要打印值的差异。我使用了内置的函数XMLUTIL,但它没有按预期工作,即。它会创建一个包含父标签在内的差异文件。
在上面的 xml 文件中,我只需要带有如下值的标签
tns:Source 的值为EPH,tns:Accounting_Record_Reference 的值为 130830000672401,tns:OPF_Reference 的值为 EPH1308300006724 和 tns:Group_Reference EPH1308300006723 进行比较,而不是父标签,如 tns:References、tns:OPF_Information 或 tnsA:
任何人都可以帮助逻辑获取其中没有子标签的标签,并立即结束,在其开始 <> 和结束之间只有一个值,并将其与另一个文件进行比较并打印标签名称和值(如果有)有区别吗?
qtp - 尝试单击 QTP 中的 JavaStaticText 对象时出现“参数数量错误”错误
在测试 Java 应用程序时,我在单击 QTP 中的 JavaStaticText 对象时遇到问题。我已将对象添加到我的对象存储库并将 JavaStaticText 对象命名为“DEPLOY”:
这是我的脚本:
该脚本在最后一条语句中引发以下错误:
参数数量错误或无效的属性分配
我不知道为什么会抛出这个错误!
提前致谢
qtp - QTP 如何检测错误?
假设正在执行一个测试脚本并发生错误,有人可以解释 QTP 如何检测到它是一个错误吗?基本上我想知道QTP是如何检测到这个错误的?例如:也许某些变量会被持续监控以检查是否发生错误。
我查看了 Err.Number,但在错误发生后进行了修改。QTP 怎么知道 Err.Number 被修改了?
我只想批量运行测试脚本,当测试脚本失败时,我想将错误描述和测试脚本名称写入文件并跳过当前测试并执行下一个测试脚本。有任何想法吗?
vbscript - QTP 识别 JavaEdit 对象但在运行脚本时无法设置值
我编写了一个简单的脚本来登录 Java 应用程序,在其中填写用户名和密码,然后单击“连接”按钮”。
这很奇怪,因为 QTP 正确识别了我的密码字段。运行以下代码时,我按预期返回了一个值:
我也尝试在不加密的情况下设置密码,但它也不起作用。
PS:同样的脚本之前工作过,后来因为未知原因停止工作!!!
提前致谢。
hp-uft - UFT 未正确识别 Web 对象
我的硬盘崩溃了,我不得不执行 Windows 的全新安装。我安装了 UFT 版本 11.5,但 UFT 将 Internet Explorer 对话框识别为 Web 对象时遇到问题。它似乎只与通过模态对话框进程打开的窗口有关。如果我启动一个新测试,对象存储库可以正确识别浏览器,只有模态窗口下的对象未被识别为 Web 对象。它们被标识为 WinObject : Internet Explorer_Server。
这适用于我组织中的所有其他工作站。
我尝试了以下方法: - 确保启用了 Web 加载项。-确保在加载浏览器进行测试之前首先启动 UFT。-卸载并重新安装 UFT。-在具有完全权限的管理员帐户下运行。- 确保 BHOManager 类在 Internet Explorer 中作为附加组件启用 - 确保 BHOManager DLL 已注册。- 更新到最新的 UFT 补丁。
Internet Explorer 是第 8 版。正如我之前所说,它可以在其他机器上正常工作。奇怪的是,只有模态对话框没有正确识别。
这是麦克风配置文件:
excel - QTP/UFT:使用 VB 比较两个 excelsheets 的简单和高性能
我想在 VB 中比较 2 个 Excel 表格。我知道如何在 QTP/UFT 中打开这些工作表我知道如何获取所有单元格的范围。但我不知道比较这两张纸(范围)的有效方法。
如果第二张表中的值与第一张表中的相应值不同,则应将其插入第二张表的相应单元格中。我可以串行解析所有单元格以与相应的单元格进行比较,但这不是很高效。
我想通过以下方式进行比较:
所有值都可以在不同的行和单元格中,但在第一列和列的标题中都有相应的 ID。因此,我必须在两个工作表中解析正确的行 ID,并在两个列标题中解析相应的列。我不想在工作表中使用公式,因为我必须以编程方式进行比较。
如果 Excel 中有我可以使用的函数、方法或属性,有人可以给我一个提示吗?提前致谢