2012-03-02 110 views
1

现在我正在用QTP测试在线商店网站。QTP:如何识别脚本运行时创建的对象?

的发生问题相当棘手。 我已经有一个帐户,所以我点了一个产品,它会自动显示我的帐单地址。

我需要测试的是,如果我要改变这个地址,这个地址应该在“我的地址”我可以设置一个变量类型的地址添加。像(newaddress =“Sk ks,....”) 但问题是我无法识别创建的对象。因为它是在脚本运行期间创建的。有人有想法吗?

enter image description here

myQTP脚本中找到 “SK KS ......” SPAN。

Set mypage = Browser("Browser").Page("Micasa") 

If mypage.webelement("html tag:=span").Exist(3) Then  'or even class:=headline 
    msgbox "it exists" 
Else 
    msgbox "doesn't exist" 
    End if 
End if 

回答

2

我很难理解究竟是什么问题,但让我试着去帮助你。

你试过把一个断点,让你烦恼的一部分吗?放置断点后,您可以运行脚本,并在断点处自动断开。 从那里,你可以使用GUI间谍和对象库(我假设你使用O.R.并且不使用描述性编程?)来检测对象以在O.R中进行描述。更通用。

+0

没错。我使用O.R. 运行脚本时,它以只读模式打开组件,因此我可以识别该对象,但不能添加新行。 为此,我停止了脚本,并再次打开组件,并通过在O.R中添加新对象来识别对象。 但下一次我运行该脚本,它显示了我,我选择了旧的对象(例如: - andereName ..),但不是我最近创建了一个(SK KS ..) – 2012-03-02 09:49:09

+0

它看起来像你认识的组件这是'价值'财产(或类似)。第一次这个属性的值是'andereName',第二次'Sk ks'。您需要将说明属性更改/添加到更通用的属性。在一个构建良好的网页上,它将是'html id'作为唯一标识符,如果它是懒惰开发的,则没有唯一标识符,必须在'标签名','类'和最终序号标识符上识别它。 – AutomatedChaos 2012-03-02 09:58:42

+0

以及'标签名称'是SPAN和类是“webelement”。 但两个对象都具有相同的值,除了内部文本。 在序数标识符中,我看到类型值“sk ks ..”得到“索引0”,第二个对象得到“索引1”。 如何在脚本中使用这种差异? – 2012-03-02 10:15:30

1

应该有识别被测试运行期间创建的对象没有问题。如果QTP没有找到对象,它会等待一会儿,然后再次尝试。你的问题似乎是找到你正在寻找的WebElement的一个很好的描述。

综观上AutomatedChaos的答案的评论似乎是你有一个非常小的说明(只有html tag)。如果你真的知道你的WebElement,你可以使用视觉关系标识符(使用QTP11)来查找你的元素。