【QTP】等待页面加载的几种方法(补充)

上一篇 / 下一篇  2013-06-14 16:00:25

在脚本的编写过程中,经常会遇到脚本执行太快,导致页面还没有加载完毕,而脚本却已经执行到下面N条,为了避免这样的情况,列举了几种等待页面加载的方法:

【1】

在File-->Settings-->Run-->Objectsynchronization中设置,默认时间是20秒。也就是说QTP会在20秒内不断的查找对象,如果在20秒内,页面控件出现,则能正常进行,超过20秒就要报错了。

虽然加长超时时间是一种方法,但还是推荐下面几种方法。

 

【2】

  1. Browser(":=").Navigate "http://www.baidu.com"  
  2. Browser("百度一下,你就知道").Page("百度一下,你就知道").Sync  
  3. msgbox "Over"  

这种方法最简单,直接在Page对象后,家个Sync,会等待页面加载完成后再执行下面语句,但有时候也不好使。

 

【3】

  1. Browser(":=").Navigate "http://www.baidu.com"  
  2. Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").WaitProperty "visible"True, 100000   
  3. msgbox "Over"  

在100秒的时间内,等待wd对象的visible属性,visible属性变为true,则执行下面语句。

最后的100000单位是毫秒,如果在100000毫秒=100秒。

 

【4】

  1. Browser(":=").Navigate "http://www.baidu.com"  
  2. Do  
  3.     wait 0,500  
  4. Loop Until Browser("百度一下,你就知道").Page("百度一下,你就知道"). WebEdit ("wd ").Exist(0.5)  
  5. msgbox "Over"  

这也是我比较喜欢的方法,要用什么控件,判断下是否存在,也可以直接写成函数,达到复用。

 

【5】

  1. Set oIE = CreateObject("InternetExplorer.Application")  
  2. oIE.Visible = True     '设置可见  
  3. oIE.Navigate "http://www.baidu.com"        '跳转URL  
  4. '等待IE页面加载完毕  
  5. While oIE.Busy :Wend  
  6. msgbox "Over"

TAG:

 

评分:0

我来说两句

日历

« 2024-05-15  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 52316
  • 日志数: 64
  • 建立时间: 2012-04-10
  • 更新时间: 2013-11-29

RSS订阅

Open Toolbar