51Testing软件测试论坛

标题: Browser.sync 和 page.sync有什么区别啊? [打印本页]

作者: Chain.Dai.China    时间: 2010-7-6 09:02
标题: Browser.sync 和 page.sync有什么区别啊?
Browser.sync 和 page.sync有什么区别啊?
有人说Browser.sync是等待frame加载完,而page.sync不会。那是不是无论什么时候都应该用Browser.sync,因为它保险一点?
作者: 克彻巴彦    时间: 2010-7-8 00:09
标题: 他们打不部分时候是没有区别的
Browser.sync:当IE状态栏显示 Done 后才进行下一步
page.sync:当页面完成加载之后才进行下一步
当状态栏显示Done后 页面往往也加载完毕
所以大部分时候他们看不出什么区别

但是有些时候还是会有区别,这个却别就是当同时使用了Browser.sync和page.sync后,qtp完成这两步之后,发现页面仍然没有加载完毕。

这是可以采用判断页面某个特殊的object 是否存在或visible属性为True时再进行下一步

如:
Dim Count
Count=0
Do while count<>5
If Browser().Page().object().GetROProperty("visible")=True Then
  Count=5
Else
Count=Count+1
wait 10
End If
Loop


如果执行了上述语句,页面仍然没有加载完毕,那么可以怀疑页面加载除了问题
作者: yujie6832    时间: 2010-7-8 10:00
呵呵,楼上正解,鲜花
作者: crowsong    时间: 2010-7-8 11:01
学习了,
作者: Chain.Dai.China    时间: 2010-7-8 13:37
谢谢二楼,不过你这么一说,让我觉得很没有安全感了
作者: JonnyGu    时间: 2010-7-8 16:22
一般情况下,这两种随便用,不要没有安全感
作者: 克彻巴彦    时间: 2010-7-8 17:19
标题: 多谢跟帖
谢谢大家跟帖,小弟刚刚来到这个论坛,以后大家多多交流
作者: 克彻巴彦    时间: 2010-7-8 17:20
标题: 不要没有安全感
一般情况下,qtp自带的函数和方法都很好用,不好用时可以考虑其他方法
作者: JonnyGu    时间: 2010-7-9 14:37
不过有时候的确sync执行完之后,其实页面还没有加载完,而接下来的页面可能是任何一个页面,所以判断下一个页面的对象也不可行(因为是一个common的函数,所以不好判断)
作者: 克彻巴彦    时间: 2010-7-9 17:40
标题: 如是使用commen的函数 有方法
使用commen的函数处理每个新加载页面的同步问题时,可以获取IE object对象,利用IE 自带的busy属性和Readystate属性循环判别IE是否加载完毕,未加载完毕,等5秒 ;加载完毕跳出循环。  可以试一下
作者: JonnyGu    时间: 2010-7-12 15:10
这个原理是不是和sync一样的啊?
可能sync本身就是用的这个方法哈哈。
作者: 克彻巴彦    时间: 2010-7-12 17:41
标题: sync
如楼上所说 原理是一样的  呵呵

我想说的是重写sync 同时加上“标志性对象判断”方法 会使页面更加稳定
作者: JonnyGu    时间: 2010-7-14 10:48
IE.Busy为false,但是IE.readystate却一直为0,不是4?
作者: 克彻巴彦    时间: 2010-7-14 13:01
标题: 回复 13# 的帖子
IE.readystate=4 时才表明IE 加载完毕  如果一直为0   是否页面加载有错误提示呢?
作者: JonnyGu    时间: 2010-7-14 16:18
改成 READYSTATE_COMPLETE 就行了。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2