首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >qtp变为“无响应”

qtp变为“无响应”
EN

Stack Overflow用户
提问于 2012-03-26 00:06:15
回答 2查看 575关注 0票数 1

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

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

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

导致此问题的原因是什么?我该如何解决这个问题呢?

EN

回答 2

Stack Overflow用户

发布于 2012-03-26 03:30:52

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

为了解决这个问题,你应该尽量缩小你想要检索的元素的数量,添加一个描述,同时指定一个html tag来检索所有子对象的一个子集(我不认为你真的需要所有DOM元素的列表)。如果您确实需要所有的DOM元素,那么也许可以使用BrowserRunScript方法(QTP11中的新方法)将操作移动到浏览器端。

如果您选择在描述中使用html tag,最好指定它不是正则表达式。

代码语言:javascript
复制
Set desc = Description.Create()
desc("html tag").Value = "div"
desc("html tag").RegularExpression = False
票数 1
EN

Stack Overflow用户

发布于 2013-08-02 17:50:32

可以使用以下命令设置超时

代码语言:javascript
复制
Dim SaveDefaultTimeOut: SaveDefaultTimeOut=Setting ("DefaultTimeout")
Setting ("DefaultTimeout")=<newval>
Dim SaveWebTimeout: SaveWebTimeout=Setting ("WebTimeout")
Setting ("WebTimeout")=<newval>

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

代码语言:javascript
复制
Setting ("DefaultTimeout")=SaveDefaultTimeOut
Setting ("WebTimeout")=SaveWebTimeout

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

代码语言:javascript
复制
Setting ("DefaultTimeout")=5000
Setting ("WebTimeout")=5000

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9861644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档