我无法在testcomplete中等待页面元素加载

时间:2013-08-26 11:08:53

标签: vbscript testcomplete

我正在使用工具testcomplete与vbscript一起处理Web应用程序。  pageTab = Sys.Process(“iexplore”)。IEFrame(0).CommandBar.TabBand.TabButton(“Tieto Client Manager”)。已启用

  do while(pageTab <> True)
      Sys.Process("Explorer").Refresh 
      pageTab = Sys.Process("iexplore").IEFrame(0).CommandBar.TabBand.TabButton("Tieto Client Manager").Enabled
      Sys.Process("iexplore").IEFrame(0).CommandBar.TabBand.TabButton("Tieto Client Manager").Refresh
  loop


  pageBusyState = Sys.Process("iexplore" , 2).Page("*").Busy
    do while(pageBusyState <> False)
    pageBusyState = Sys.Process("iexplore" , 2).Page("*").Busy
  loop 

使用此代码,我可以等待新页面,但无法等待控件加载页面。

2 个答案:

答案 0 :(得分:0)

等待动态页面准备就绪的最佳方法是等待此页面上的特定对象。例如,这可能是您需要在页面上工作的第一个对象。在Waiting For Web Pages帮助主题中描述了这种方法以及其他几种方法。

答案 1 :(得分:0)

  Timeout=False

  'Check IEXPLORE Process running on window 

  If Sys.Process("IEXPLORE").Exists  Then

    Set obj = Sys.Process("IEXPLORE").Page("*") 
    Set PageObj = Eval(obj.FullName)
    'Set Default Timeout
    intDefaultTimeout=1000
    'Do until Page Object readyState=4 or Timeout
    Do  
      Set PageObj= Sys.Process("IEXPLORE").Page("*")
      'Check for Timeout
      If aqConvert.StrToInt(DateDiff("n",intTimerStart,Now))>= aqConvert.StrToInt(intDefaultTimeout)  Then
        Timeout=True
      End If
    Loop Until PageObj.ReadyState = 4 Or Timeout=True   

  Else 

     'Check iexplore 2 Process running on window 

    If Sys.Process("iexplore",2).Exists Then
      Set obj = Sys.Process("iexplore",2).Page("*") 
      Set PageObj = Eval(obj.FullName)
      'Set Default Timeout
      intDefaultTimeout=Project.Variables.prjDefaultTimeout
      'Do until Page Object readyState=4(page loaded fully or request finished and response is ready) or Timeout      
      Do  
        Set PageObj= Sys.Process("iexplore",2).Page("*")
        If aqConvert.StrToInt(DateDiff("n",intTimerStart,Now))>= aqConvert.StrToInt(intDefaultTimeout)  Then
          Timeout=True
        End If
        'Check still the page is in busy mode or page loaded fully .
      Loop Until PageObj.ReadyState = 4  Or Timeout=True 
    End If   
  End If 

 'Calling Activate method to apply a property collection corresponding to a run mode   
  PageObj.Activate