我正在尝试使用childObjects方法。在某些情况下,在大页面(有许多对象)上,我看到qtp变成“无响应”,函数返回空列表。
在不同的计算机上,它可以正常工作,但如果我继续增加页面中对象的数量,它也会失败。
我也在facebook (登录后)和www.ynet.co.il上尝试过,在两种情况下,在一台电脑上都失败了,在另一台电脑上运行正常(相同的qtp11版本)。
导致此问题的原因是什么?我该如何解决这个问题呢?
发布于 2012-03-26 03:30:52
在QTP中,当浏览器响应时间过长时会出现超时,如果在ChildObjects期间发生超时,则会返回一个空列表。两台计算机的不同之处可能在于其中一台比另一台更快。
为了解决这个问题,你应该尽量缩小你想要检索的元素的数量,添加一个描述,同时指定一个html tag来检索所有子对象的一个子集(我不认为你真的需要所有DOM元素的列表)。如果您确实需要所有的DOM元素,那么也许可以使用Browser的RunScript方法(QTP11中的新方法)将操作移动到浏览器端。
如果您选择在描述中使用html tag,最好指定它不是正则表达式。
Set desc = Description.Create()
desc("html tag").Value = "div"
desc("html tag").RegularExpression = False发布于 2013-08-02 17:50:32
可以使用以下命令设置超时
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一旦加载库,就会设置超时,覆盖配置对话框中的值。
https://stackoverflow.com/questions/9861644
复制相似问题