qtp变得“没有回应”

时间:2012-03-25 16:06:15

标签: qtp

我正在尝试使用childObjects方法。 在某些情况下,在大页面(包含许多对象)上,我看到qtp变为“无响应”,并且函数返回空列表。

在不同的计算机上它可以正常工作,但如果我继续增加页面中的对象数量,它也会失败。

我也尝试在facebook(登录后)和www.ynet.co.il上,在这两种情况下,它在一台计算机上失败,在另一台计算机上它运行正常(相同的qtp11版本)。

什么可能导致这个问题?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

在QTP中,当浏览器响应时间过长时会出现超时,如果在ChildObjects期间发生超时,则会返回空列表。两台计算机之间的差异可能是一台比另一台更快。

为了解决此问题,您应该尝试缩小要检索的元素数量,在指定html tag时添加描述以仅检索所有子对象的子集(我不认为你真的需要一个所有DOM元素的列表)。如果您实际上需要所有DOM元素,那么您可以使用Browser的{​​{1}}方法(QTP11中的新方法)将操作移动到浏览器端。< / p>

如果您选择在说明中使用RunScript,则最好指定它不是正则表达式。

html tag

答案 1 :(得分:0)

可以使用

设置超时
Dim SaveDefaultTimeOut: SaveDefaultTimeOut=Setting ("DefaultTimeout")
Setting ("DefaultTimeout")=<newval>
Dim SaveWebTimeout: SaveWebTimeout=Setting ("WebTimeout")
Setting ("WebTimeout")=<newval>

在childObjects调用之前设置更高的超时,并使用

恢复原始超时
Setting ("DefaultTimeout")=SaveDefaultTimeOut
Setting ("WebTimeout")=SaveWebTimeout

但是,您应始终将QTP客户端之间的时间值标准化,以获得可比较的结果。一种方法是将它们设置在库中,方法是将以下行插入库中(在全局scrope上,而不是在任何例程中):

Setting ("DefaultTimeout")=5000
Setting ("WebTimeout")=5000

一旦加载库,就会设置超时,覆盖配置对话框中的值。