gpt4 book ai didi

qtp - 如何获取测试对象的逻辑名称(存在于关联的共享 OR 中)?

转载 作者:行者123 更新时间:2023-12-04 14:01:46 24 4
gpt4 key购买 nike

假设我通过了 Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox")到一个函数:

MyFunction (Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox"))

稍后,该函数想要记录接收到的测试对象的逻辑名称(在本例中,当然是“MyBox”)。

怎么会这样?

如果您重新添加测试对象,“名称”测试对象属性将返回构建的名称。
逻辑名称没有(记录在案的)测试对象属性。
运行时对象属性不可能包含名称,因为它不是来自 AUT GUI 的名称。

所以我认为测试对象不知道它的名字。只有存储库“知道”测试对象以哪个名称存储在那里。

所以我将不得不检查存储库本身,而不是测试对象。
ObjectRepositoryUtil API 允许我(通过 GetChildren 或其他方法)在存储库的测试对象集合中查找测试对象,并使用 GetLogicalName方法来获取它的名字。美好的。

但是让它工作的唯一方法是通过加载来获取对存储库的引用。我的印象是这个 API 旨在从 QTP 外部而不是从测试运行内部操作(或分析)repos。
我不想重新加载存储库。我想在已加载的存储库之一中查找测试对象。
RepositoriesCollection API 可以告诉我加载了哪些(通过它们的名称和路径),但它不提供获取对表示这些存储库之一的对象实例的引用的方法。

那么如何获得对已加载存储库的引用,以便我可以使用 GetLogicalName ?

或者一般问:给定对包含在当前操作的共享存储库中的“正常”测试对象的引用,我如何以编程方式找出其逻辑名称?

如果有一些非常聪明的 QTP 巫师 a la Motti 知道这是不可能做到的,我真的很感激他的回答,即使这是真的,即使上面写着“这是不可能的”。

最佳答案

您需要“TestObjName”属性:

function GetRepoName(obj)
GetRepoName = obj.GetTOProperty("TestObjName")
end function

用法:
logicalName = GetRepoName(Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox"))
'logicalName now equals "MyBox"

如果您觉得需要将整个对象链重构为字符串,您可以使用以下方法“GetFullQtpName”(它还需要 GetRepoName 加上下面的 2 个额外方法):
function GetFullQtpName(obj)
dim fullQtpName : fullQtpName = MakeQtpName(obj)
dim objCurrent : set objCurrent = obj

do while not IsEmpty(objCurrent.GetTOProperty("parent"))
set objCurrent = objCurrent.GetTOProperty("parent")
fullQtpName = MakeQtpName(objCurrent) & "." & fullQtpName
loop

GetFullQtpName = fullQtpName
end function

function MakeQtpName(obj)
MakeQtpName = GetClassName(obj) & "(""" & GetRepoName(obj) & """)"
end function

function GetClassName(obj)
GetClassName = obj.GetTOProperty("class Name")
end function

用法:
fullQtpName = GetFullQtpName(Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox"))
'fullQtpName now equals "Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox")"

关于qtp - 如何获取测试对象的逻辑名称(存在于关联的共享 OR 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18490083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com