51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2697|回复: 9
打印 上一主题 下一主题

[原创] Exist方法的奇怪问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-2-22 16:38:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一开始都还是很正常的,但突然某一天。。。。。。

代码很简单,就是判断Browser("Info").Page("Info").WebButton("Continue").Exist(1)
执行这句代码,以前都很快的,但某一天突然就慢了,每次都得等待默认的20秒时间...下面还有几个.Exist也都同样慢,将智能识别全关掉还是一样~谁知道可能是什么问题呢~~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

10#
发表于 2008-2-25 15:54:56 | 只看该作者
原帖由 hsjzfling 于 2008-2-25 12:23 发表
感觉Exist还是有比较大的bug...
我先关掉了所有对象的智能识别
执行该脚本前面的一些在文本框中填值的步骤,填10个值花费2-3秒。
然后直接判断Browser("Info").Exist(1),对象库中Browser("Info")的CreationTime为 ...


一般来说, 当识别一个Browser时, 最好用"title" 或者"name"属性来识别. 如果多个Browser的"title"和"name"都一样时,再用CreationTime或者index来区分他们. 你换成"title"或者"name"来试试.
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-2-25 12:23:22 | 只看该作者

回复 8# 的帖子

感觉Exist还是有比较大的bug...
我先关掉了所有对象的智能识别
执行该脚本前面的一些在文本框中填值的步骤,填10个值花费2-3秒。
然后直接判断Browser("Info").Exist(1),对象库中Browser("Info")的CreationTime为1,但打开的第二个页面此时已经关闭了(即我要判断是否存在的页面),当前存在的页面应该是CreationTime为0,但QTP却瞬间返回了True。
接着我判断Browser("Info").Page("Info").WebButton("Continue").Exist(1),等待20秒后返回的是False...结果没错,但等待时间却...
再尝试判断Browser("Info").Page("Info").Exist(1),有了点进步,只等待了5-8秒返回了False
......
有点晕了~
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-2-25 11:21:11 | 只看该作者
还是检查一下父对象的识别属性,看看实际对象和对象库中的对象是否一致。从现象描述来看,的确很像test setting中设置的同步时间引起的。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-2-25 10:54:47 | 只看该作者
我在3楼也提到过了,不应存在页面同步问题,执行完前一个步骤后就没有任何刷新或跳转页面的动作,而且测试机和服务器是处于局域网中,服务器端也没什么压力...
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-2-22 19:28:49 | 只看该作者
是你的网页打开速度问题吧
它要等你网页打开找到页面对象,然后才会找你定义的具体的控件对象
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-2-22 18:27:16 | 只看该作者
和这个没啥关系...默认都是0,我想没谁会在这里设每步等待20秒吧~~
其它的步骤都执行的飞快,就是这两三处Exist的地方等待20秒
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-2-22 17:58:38 | 只看该作者
看看你的tools-》options中的run菜单中是不是设置的等待时间

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-2-22 17:37:57 | 只看该作者
可问题就是不管我指定0秒还是1秒它都会在那一步等待20秒左右...也不存在等待页面同步等问题...
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2008-2-22 17:00:27 | 只看该作者
exist(1) 你已经指定了1秒了,不会再等待20秒吧

Exist([Timeout])

Timeout  数字  可选。 在返回 True 或 False 值之前搜索对象的时间长度。
如果指定了超时值,则 QuickTest 会等待它找到该对象或者到达超时。
如果指定了值 0,则该方法会立即返回 True 或 False 值。
如果未指定值,则将使用在"测试设置"对话框中为"对象同步超时"指定的值进行测试。对于业务组件,使用预定义值 20 秒。
有关"对象同步超时"的详细信息,请参阅《Mercury QuickTest Professional 用户指南》。  


如果没有指定超时值,而对象又不存在,一般就会等待20秒时间
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-22 04:25 , Processed in 0.093180 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表