2016-04-22 37 views
0

中的对象的建立和参考我想知道如何通过控制台/手表访问属性/方法。在HP UFT

我有以下代码:

Dim page 
page = Browser("Welcome: Mercury Tours").Page 

现在我想获得该页面的标题。由于我使用Object Spy检查了Page对象,并且我看到它有一个title属性。

当我在我的手表然而进入page.title,它告诉我,页面不包含财产。
1.什么是正确的语法?
2.为什么这不起作用?我认为手表正在检查VBScript对象属性而不是TestObject属性?我有一个编程背景,我发现VBObject和TestObjects简单地遍历相同的文件非常混乱,它有点像黑盒子:/)

回答

3

好吧,你的语法不正确。 ..

看样子,你想东西放在一个名为“页面”的变量,但我不知道如果我能找出你的意图。

如果您试图将页面对象放入var页面,您需要使用set语句(向vbscript表明它将持有一个对象,而不仅仅是一段数据)。 ..

无论如何,您指定页面的语法是错误的。

在你的榜样,你指定一个所谓的浏览器测试对象“欢迎:水星之旅”从资源库......但那么你就把。第 - 而这也正是你的语法错误是。

它有助于了解测试对象和实时对象之间的差异 - 因为你需要指定页面的测试对象。你可以通过从Object Repository中指定一个页面对象来实现这一点,或者你可以用描述性的方式来做到这一点。

测试对象是QTP试图找到的真实对象的描述。如果它成功地找到了与描述相匹配的真实对象,那么测试对象(虚拟)就会“附着到”真实对象...然后,您可以使用测试对象来查询真实对象的真实属性附属于。

因为你明明在做教程,你的对象库可能在浏览器对象下的heiarchy中有一个页面测试对象......(如果你让Intellisense帮忙,它会显示一个页面列表当你输入...时选择)。如果是的话,你会指定页面对象是这样的:

Browser("Welcome: Mercury Tours").Page("PageObjectNameHere") 

如果您更喜欢使用描述性的节目,你可以改为输入像:

Browser("Welcome: Mercury Tours").Page("Title:=Welcome: Mercury Tours") 

你的语法更改到这类结构的将让你解决你的问题的下一个部分进行 - 如何从页面获取一些数据...

所以,一旦你有正确的解决网页测试对象,那么你可以指定一个方法,从获取信息它...比如.GetROProperty()

您可以从多个属性中选择一个页面...如果您检查使用GUISPY的页面时,它几乎让你可以查询...例如,如果你想查询时显示的页面的URL属性的列表,你可以指定

Browser("Welcome: Mercury Tours").Page("Title:=Welcome: Mercury Tours").GetROProperty("url") 

这当然会返回一个值,所以你想用它做什么...喜欢它赋值给一个变量

result = Browser("Welcome: Mercury Tours").Page("Title:=Welcome: Mercury Tours").GetROProperty("url") 

(如果你这样做,你就可以添加变量“结果”的手表列表...它回答你的问题。)

或直接在你的代码中检查它

if Browser("Welcome: Mercury Tours").Page("Title:=Welcome: Mercury Tours").GetROProperty("url") = url_to_compare then DoSomething() 

我希望这可以帮助清理你的理解:)

+0

很好解释!谢谢。我完全错过了Dim和Set之间的区别,谢谢! – Kai

+0

是的,Dim和Set具有完全不同的用途...... Dim(维度)将声明变量的名称,并为其留出记忆。如果你使用“Option Explicit”,那么你必须为每个变量使用Dim语句。这对于非常大的脚本很有用,因为如果您尝试使用未声明的变量名称(即,捕获拼写错误),则会引发错误。如果没有选项显式,变量名中的拼写错误很难找到。 Set语句用于必须将对象分配给变量的情况。 (即“a = 5”与“set a = browser(”ie“)”) –

相关问题