QTP/UFT - 创建 WebLink 变量的函数

QTP/UFT - Function That Creates WebLink Variables

我正在考虑做一些我不确定是否可行的事情 - 也许甚至不是最佳实践,但仍然想尝试一下。

我有一个函数库,我有执行主要脚本的操作,显然是从库中调用函数。

最初在我的操作中,代码看起来像这样:

代码

Browser("Browser").Page("Page").WebElement("Element").Click

不过,我已经将其更改为:

代码

Set WebLink = Browser("Browser").Page("Page")

WebLink.WebElement("Element").Click

我这样做是因为我觉得每行都有 "less" 代码,看起来更简洁。

我知道我可以编写一个函数来执行此操作:

Public Function myLink(WebLink)

Set WebLink = Browser("Browser").Page("Page")

End Function

然后在我的操作中,我只在顶部调用一次:

代码

Call myLink(WebLink)
WebLink.WebElement("Name").HighLight 

但是,我在想在某些情况下,我会有不同的页面名称,例如:

代码

Browser("Browser").Page("Page1")
Browser("Browser").Page("Page2")
Browser("Browser").Page("Page3")

所以也许,创建一个函数来存储我的变量然后我能够调用这些变量可能是一种替代方法。

我的函数可能如下所示:

代码

Public Function myLinks(WebLink)

    Dim Pages(): Pages = ("Login","CreateUser","SelectOption","DeleteUser",)

    Browser("Browser").Page(Pages())

    For Each Elem In Pages

        Set WebLink = Browser("Browser").Page(Pages())

    End For

End Function

那么在我的操作中,我是这样使用的:

代码

Call myLinks(WebLink)

Login.WebElement("Element").Click
CreateUser.WebElement("Element").Click
SelectOption.WebElement("Element").Click
DeleteUser.WebElement("Element").Click

我知道我所拥有的可能不合逻辑,但如果这样的事情可能行得通,我想试一试。

好吧,如果您没有在 vbs 文件的开头启用 Option Explicit(这会强制您在使用前声明每个变量),那么您可以简单地说:

For Each strPage in Pages()
     ExecuteGlobal "Set " & strPage & " = Browser(""Browser"").Page(""" & strPage & """)"
Next

这将为您创建全局变量,其名称为页面数组中的字符串。您不需要任何输入参数

P.S:更好的名称是 InitPageObjects - 因为您要实现的目标与链接

无关