Browser.sync 和 page.sync有什么区别啊?
Browser.sync 和 page.sync有什么区别啊?有人说Browser.sync是等待frame加载完,而page.sync不会。那是不是无论什么时候都应该用Browser.sync,因为它保险一点?
他们打不部分时候是没有区别的
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
如果执行了上述语句,页面仍然没有加载完毕,那么可以怀疑页面加载除了问题 呵呵,楼上正解,鲜花:lol 学习了,:) 谢谢二楼,不过你这么一说,让我觉得很没有安全感了:lol 一般情况下,这两种随便用,不要没有安全感:lol
多谢跟帖
谢谢大家跟帖,小弟刚刚来到这个论坛,以后大家多多交流:) :) :victory:不要没有安全感
一般情况下,qtp自带的函数和方法都很好用,不好用时可以考虑其他方法 不过有时候的确sync执行完之后,其实页面还没有加载完,而接下来的页面可能是任何一个页面,所以判断下一个页面的对象也不可行(因为是一个common的函数,所以不好判断)如是使用commen的函数 有方法
使用commen的函数处理每个新加载页面的同步问题时,可以获取IE object对象,利用IE 自带的busy属性和Readystate属性循环判别IE是否加载完毕,未加载完毕,等5秒 ;加载完毕跳出循环。可以试一下 这个原理是不是和sync一样的啊?可能sync本身就是用的这个方法哈哈。
sync
如楼上所说 原理是一样的呵呵我想说的是重写sync 同时加上“标志性对象判断”方法 会使页面更加稳定 IE.Busy为false,但是IE.readystate却一直为0,不是4?
回复 13# 的帖子
IE.readystate=4 时才表明IE 加载完毕如果一直为0 是否页面加载有错误提示呢? 改成 READYSTATE_COMPLETE 就行了。
页:
[1]