如何处理更改页面名称?

时间:2011-07-19 04:33:23

标签: qtp

我是QTP和编程的新手,但我目前的任务是使用QTP 9.2为多页Web应用程序创建自动化测试。 我的脚本在早期构建期间工作正常,但现在似乎程序员已经重命名了一些页面名称,因此脚本在执行期间会超时,因为它无法在对象存储库中找到对象。

有没有更有效的方式来使用QTP,所以如果程序员更改页面标题等,我不必做太多的返工?

...谢谢 GB


这行代码不再有效,因为浏览器/页面的标题已从“REVIEW DOCS”更改为“删除所有文档”:

DAF =浏览器( “REVIEW_DOCS”)。页( “REVIEW_DOCS”)。帧( “主”)。WebElement( “DAF”)。GetROProperty( “的innerText”)

我知道至少有一个其他页面已被更改,并且在脚本继续运行时可能会遇到更多页面。

感谢您的帮助......

4 个答案:

答案 0 :(得分:3)

这取决于 Page 一词的含义。

如果你的意思是:

网页

可能未被识别的对象是Frame个测试对象。您应该到达未标识对象的位置并更新对象存储库中的Frame描述(您可以使用正则表达式更通用)。如果您使用更高版本的QTP 维护运行模式将使这更容易(但据我记得它是在QTP 9.2之后引入的)。

如果你的意思是:

Page测试对象

默认情况下,Page测试对象没有任何标识属性,并且用于以逻辑方式对其他测试对象进行分组。这意味着您可以将测试对象从一个Page移动到另一个{{1}},并且它们应该能够继续成功运行。

答案 1 :(得分:1)

如果您能够在对象存储库中添加页面对象。那么最好使用"正则表达式"到您的Page Object的属性值。

这个链接可以帮助您: - http://www.learnqtp.com/regular-expressions-regularized/

答案 2 :(得分:1)

处理此类问题的一种方法是将静态描述性编程应用于QTP脚本,而不是仅依赖于对象存储库。在您的情况下,您可以使用内联。*正则表达式为title属性和通用浏览器miccclass属性来处理标题经常更改的页面对象:

Set DAF = Browser("micclass:=Browser").Page("title:=.*").Frame("main").WebElement("DAF").GetROProperty("innertext")

然后,QTP应该找到您将变量“DAF”设置为的RO属性,而不管页面标题如何。

答案 3 :(得分:0)

您需要进入对象存储库并展开浏览器REVIEW_DOCS和页面REVIEW_DOCS以更新页面对象以引用新名称。