2015-12-17 2 views
0

У меня проблема с моим скриптом.
Вот мой сценарий:UFT зависает после метода «Press»

SwfWindow("swfname:=MDIMain").SwfObject("swfname path:=;MDIMain").SwfWindow("swfname:=ActiveReportPreview").SwfObject("swfname:=Viewer1").SwfToolbar("micclass:=SwfToolbar").Press 2 
SwfWindow("swfname:=MDIMain").Dialog("text:=Print").SwfButton("text:=&Print").Click 

Этот код предположим:

  1. Нажмите на значок "печать" -> "Печать" откроется диалоговое окно
  2. Нажмите на кнопку "Печать" на " Печать "Диалог.

Но после первой строки UFT зависает и не переходит к следующей строке.

Что может быть решением?

P.S. Когда я закрываю диалоговое окно «Печать» вручную, UFT снова работает отлично. Я использую UFT версию 11.5.

+0

Возможно, QTP не может найти объект, описанный во второй строке. Итак, когда вы говорите, что после закрытия диалога вручную UFT работает нормально, значит он дает ошибку, говоря, что объект не найден? если это так, возможно, возможно, что QTP сможет найти родительский объект, но пытается найти внутренние объекты, например. он может найти SwfWindow, но не Dialog Также я не уверен, что вы можете использовать оба SwfWindow и Dialog в одном и том же описании объекта, потому что один объект формы .net, а другой - объект стандартной формы Windows Что нужно попробовать, диалог печати и проверить каждую иерархию объектов. – user5612655

+0

. Что нужно попробовать. Откройте диалоговое окно печати и проверьте каждую иерархию объектов вручную. например: сначала проверьте SwfWindow («swfname: = MDIMain»). выделите, если это работает, попробуйте SwfWindow («swfname: = MDIMain»). Диалог («текст: = Печать»). Выделить и так далее. – user5612655

+1

Спасибо за ваш ответ! Метод подсветки отлично работал для меня! – Amanda

ответ

0

Попробуйте сначала выделить объект и посмотреть, действительно ли UFT может видеть этот объект. Вот как я бы написал код:

Set myobj = SwfWindow("swfname:=MDIMain").SwfObject("swfname path:=;MDIMain").SwfWindow("swfname:=ActiveReportPreview").SwfObject("swfname:=Viewer1").SwfToolbar("micclass:=SwfToolbar") 
myobj.Press 2 '//not entirely sure if this line will work, but modify if needed 
wait 2 '//give it the time to sync 
If SwfWindow("swfname:=MDIMain").Dialog("text:=Print").Exist() Then 
    SwfWindow("swfname:=MDIMain").Dialog("text:=Print").highlight() 
    SwfWindow("swfname:=MDIMain").Dialog("text:=Print").SwfButton("text:=&Print").Click 
End If 
+0

Спасибо! Это работало для меня !!. Хотя я использовал работу (ctrl + P) для печати, но ваше решение идеально подходит для других кнопок в swftoolbar! – Amanda