TestComplete пишет 'Object not found'
#1
Отправлено 13 декабря 2010 - 13:17
Есть записанный с помощью TestComplete скрипт, который не хочет выполняться, в логах пишется 'The object does not exist'. Как я поняла происходит следующее, при запуске скрипта начинает открываться приложение (Smart Client application) но не успев загрузиться полностью скрипт начинает выполняться дальше и пишет 'The object does not exist' естественно.
Вот кусок скрипта:
function Test1()
{
var frmMain;
var frmFinder;
var tabControl;
var tabControl2;
var tabPageEx;
var textBox;
var buttonPanel;
var button;
TestedApps.rundll32.Run(1, true);
frmMain = Aliases.CDBNET.frmMain;
frmMain.MainToolBar.ClickItem("Find Contacts");
Objects.frmFinder.Check(Aliases.CDBNET.frmMain.MdiClient.frmFinder);
именно frmMain объект и теряется, CDBNET это процесс который соответствует тестируемому приложению.
Насколько я поняла именно этот процесс скрипт и не находит т.к. приложение не успевает загрузиться.
Можно ли как то приостановить выполнения скрипта пока приложение не загрузится.
В хэлпах я нашла следующее
The following code shows how to implement a waiting period of up to two seconds for launching Microsoft Word from script:
p = Sys.WaitProcess("winword", 2000);
if (p.Exists) // if the process exists ...
Но видно я совсем ламер и применить это не получилось (. Помогите пожалуйста. Заранее спасибо.
...
#2
Отправлено 13 декабря 2010 - 14:13
Если время небольшое и вы знаете какое посавьте задержку delay(30000)Помогите пожалуйста! Я совсем новичек в автоматизированном тестировании.
Есть записанный с помощью TestComplete скрипт, который не хочет выполняться, в логах пишется 'The object does not exist'. Как я поняла происходит следующее, при запуске скрипта начинает открываться приложение (Smart Client application) но не успев загрузиться полностью скрипт начинает выполняться дальше и пишет 'The object does not exist' естественно.
Вот кусок скрипта:
function Test1()
{
var frmMain;
var frmFinder;
var tabControl;
var tabControl2;
var tabPageEx;
var textBox;
var buttonPanel;
var button;
TestedApps.rundll32.Run(1, true);
frmMain = Aliases.CDBNET.frmMain;
frmMain.MainToolBar.ClickItem("Find Contacts");
Objects.frmFinder.Check(Aliases.CDBNET.frmMain.MdiClient.frmFinder);
именно frmMain объект и теряется, CDBNET это процесс который соответствует тестируемому приложению.
Насколько я поняла именно этот процесс скрипт и не находит т.к. приложение не успевает загрузиться.
Можно ли как то приостановить выполнения скрипта пока приложение не загрузится.
В хэлпах я нашла следующее
The following code shows how to implement a waiting period of up to two seconds for launching Microsoft Word from script:
p = Sys.WaitProcess("winword", 2000);
if (p.Exists) // if the process exists ...
Но видно я совсем ламер и применить это не получилось (. Помогите пожалуйста. Заранее спасибо.
...
Вы же ждете окно, а не процесс. Т.е. я понимаю у вас запускается приложение с главным окном - поэтому проверяйте на существования окно - если нет, то ждать, и снова проверять...
Используйте WaitWindow
#3
Отправлено 13 декабря 2010 - 16:44
#4
Отправлено 13 декабря 2010 - 18:37
#5
Отправлено 15 декабря 2010 - 06:28
Подозреваю, что Вы тестируете Delphi приложение. Когда такая беда случается, в Object Browser проблемный объект имеет имя VCLObject('...') или Window('...')? Если второе, то я с такой проблемой сталкивался в одной из ранних версий TestComplete 7 - приложение при загрузке не реагирует в течении некого таймаута на попытки TC получить информацию об объектах приложения, и TestComplete решает что не будет работать с приложением как с Open приложением. Мне в службе поддержки рекомендовали увеличить 'Method invoke timeout' до 10000 или даже 30000. Эта опция в группе Open Applications настроек проекта.
Дмитрий
#6
Отправлено 16 декабря 2010 - 15:12
Например, кусок скрипта запуска IE (VBScript)
set ie = Sys.FindChild("ProcessName", "iexplore", 1)
do while ie.Exists
ie.Terminate
delay 300
set ie = Sys.FindChild("ProcessName", "iexplore", 1)
loop
set ie = TestedApps.iexplore
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных