2013-08-26 1 views
-1

Я работаю над веб-приложением, используя тестовый тест с vbscript. pageTab = Sys.Process ("Iexplore"). IEFrame (0) .CommandBar.TabBand.TabButton ("Tieto Client Manager"). EnabledЯ не могу ждать в testcomplete для элемента страницы для загрузки

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 

С помощью этого кода я могу ждать новую страницу, но не в состоянии дождаться загрузки управляющей страницы.

+0

Какая версия TestComplete у вас? Неясно, какую именно задачу вы хотите достичь с помощью своего кода. Просьба уточнить, что вы подразумеваете под «страницей контрольной загрузки». –

+0

Я использую testcomplete 8.5. Когда я перехожу на следующую страницу или делаю что-то на одной странице, возникает динамическая задержка, которую я не могу создать. выше есть свойства, которые я использовал, чтобы ждать, но его не работает 100%, – user1053540

ответ

0

Лучший способ подождать, пока динамическая страница будет готова, - это ждать определенного объекта на этой странице. Например, это может быть первый объект, который вам нужен для работы на странице. Этот подход описан вместе с несколькими другими подходами в справочной теме Waiting For Web Pages.

+0

Я могу ждать страницы, но я не могу ждать, если первый объект, выполняющий действие, зависит от первого объекта, второй объект будет включен или отключен , В таком случае я хочу подождать определенного элемента управления или остальных элементов управления на странице. Рассмотрите, что страница полностью загружена. – user1053540

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 
+1

Описывая ваш код и как он отвечает на вопрос, код еще более полезен. – AdrianHHH

 Смежные вопросы

  • Нет связанных вопросов^_^