|
原帖由 风雪夜归人 于 2010-5-7 11:27 发表
个人觉得14楼的最靠谱,不过基本情况下sync就可以了..有时候sync会导致页面乱跳,不过这种概率小的非常~哈哈
cntr=0
Do until Browser("XXX").Page("XXX").WebButton("XXX").Exist.(1)
If cntr
判断单个控件状态是不可靠的:
页面资源的下载顺序是从上到下的,文档流中先出现的资源先下载(注:存在并发,具体请参考 UA Profiler)。当某一样式下载完成时,会立刻渲染到页面(体现了层叠样式表中层叠在渲染时的含义)。当某一脚本下载完成时,也会立刻解析和运行。脚本的运行严格按照文档流中的顺序进行,deferred 的脚本会在正常脚本运行之后运行(Firefox 和 IE 下)。
特别需要留意:脚本运行时,会暂停该脚本之下所有资源的下载(因为脚本可能改变文档流,甚至跳转页面,浏览器的暂停策略是合理的)。要小心内联脚本,经常会阻塞后续下载。
在页面解析展示的过程中,一个get或者post过去,给返回的html,在html中可能有外部引用的css,js或者Img,这时候浏览器一面展示html,一边去下载外面的js,css,和img
极端情况下:我们会发现页面已经展示完毕,但某个图片依然处于downloading...状态,所以假设你所判断的控件就是那个最后downloading...的而且timeout时间到了,岂不悲剧?当然,如果你timeout足够长,10s,20s,那哪种办法都无所谓,因为基本哪个网站10s,20s普通页面还解析展示不完,人家也就不等了 |
|