TestComplete и .NET Web Application
#21
Отправлено 26 декабря 2005 - 09:45
но это не очень важно...
но вот как быть с выпадающим подменю....?? в objectbrowser-e оно появляется только после того как хоть раз был выбран один из его пунктов и нажат....
#22
Отправлено 26 декабря 2005 - 11:23
У Веб объектов должен быть нативный клик - попробуйте:а просто сказать пункут меню что он был выделен...
obj.NativeWebObject.click();
А можете дать адрес странички или код, который рисует это меню? Не зная, что за объект, я ничего посоветовать не решаюсь.но вот как быть с выпадающим подменю....?? в objectbrowser-e оно появляется только после того как хоть раз был выбран один из его пунктов и нажат....
Дмитрий
#23
Отправлено 27 декабря 2005 - 15:13
но тут прояснилась такая вещь...
нужное мне подменю все-таки есть с самого начала в object browser-е...
но обратиться к нему из скрипта не могу... до тех пор пока оно хоть раз не было нажато..
obj.Exists дает false
это как-то непонятно
#24
Отправлено 28 декабря 2005 - 08:39
PS. А 'NativeWebObject.click()' тоже не работает?
Дмитрий
#25
Отправлено 28 декабря 2005 - 09:18
если интересно попробую описать ситуацию...
в objectbrowser-e есть две разные ветви где один и тот же пункт меню описан...но в одной ветке к нему можно обратиться в любой момент времени...
а в другой только после того как хоть раз на меню кликнули....
вобщем это какая-то загадочная для меня ситуация...
'NativeWebObject.click()' волшебная вещь.... оч. удобно... спасибо за подсказку.. :)
но есть еще вопросик...
в поределенной ситуации выскакивает MessageBox с кнопкой Ok...
как бы сделать чтоб не тыкать мышкой на эту кнопку а сказать что она нажата.... ведь объект виндовый NativeWebObject.click() не подходи.. RaiseEvent тоже не может помочь по-моему.. ведь у этой кнопки нет event-ов
ну т.е. я так понимаю надо сказать что у этого окошка DialogResult.Ok но какого-нибудь похожего свойства я не нахожу...
#26
Отправлено 29 декабря 2005 - 08:44
с помощью NativeWebObject.click()
нажимаю на пункт меню... открывается окошко... с которым я не могу ничего делать....
т.е. пока я ручками не закрою окно тесткомплит не переходит на следующую строку скрипта...
как с этим быть?? :(
и в help-е вообще ничего нет про NativeWebObject
#27
Отправлено 29 декабря 2005 - 13:53
Вам надо просто записать автоматически скрипт, закрывающий эту кнопку, и вызывать его в нужный момент. Если окошко может появиться, а может и не появиться, то используйте метод WaitWindow вместо Window. Например:в поределенной ситуации выскакивает MessageBox с кнопкой Ok...
как бы сделать чтоб не тыкать мышкой на эту кнопку а сказать что она нажата.... ведь объект виндовый NativeWebObject.click() не подходи.. RaiseEvent тоже не может помочь по-моему.. ведь у этой кнопки нет event-ов
ну т.е. я так понимаю надо сказать что у этого окошка DialogResult.Ok но какого-нибудь похожего свойства я не нахожу...
dlgWnd = p.WaitWindow("WndClass", "WndCaption", WndIndex); if (dlgWnd.Exists) { // Закрыть окно }
О, это действительно проблема. Ситуация довольно банальна - при вызове нативного метода click генериться соответствующее событие, которое запускает свой обработчик (показывает диалог, например). Пока обработчик не завершиться (диалог не закроется), метод click управление вызывающему потоку не вернет. Deadlock.с помощью NativeWebObject.click()
нажимаю на пункт меню... открывается окошко... с которым я не могу ничего делать....
т.е. пока я ручками не закрою окно тесткомплит не переходит на следующую строку скрипта...
как с этим быть?? :(
Здесь ничего не могу посоветовать, кроме как все-таки использовать TestComplete'овский метод Click (без NativeWebObject).
Если вы не можете найти способ, как это сделать, рекомендую обратиться в службу поддержки AutomatedQA (support@automatedqa.com).
Search выдает 7 топиков.и в help-е вообще ничего нет про NativeWebObject
Дмитрий
#28
Отправлено 12 января 2006 - 09:17
Возникла проблемка с вводом значения в поле на форме.
Подробнее:
После выбора подпункта меню открывается окно с комбо-боксом (для выбора возможны 2 значения). в зависимости от выбранного значения меняется набор полей для заполнения, но есть и общие для обоих значений ().
Если оставить по умолчанию значение в комбо-боксе, то все заполняется отлично (используя метод Keys()). проблемы начинаются, при выборе второго значения. Формочка обновляется, но! Вызов метода Keys() для нужного поля уводит ТС в "глубокий" playback... (в настройках проекта все стоит по умолчанию,вроде.)
Попробовала отыскать это поле Finder Tool-ом (после остановки скрипта) и оказалось, что ТС не видит этого объекта при выборе значения в комбо... А подсвечивается только фрейм полностью ((
Решила обойти это кликом по координатам и вводом значения. Клик-то проходит, но цифирки в поле не попадают, хотя в логе пишется, что ввод прошел успешно.
P.S. Если в комбо ничего не выбирать, то в проблемное поле цифирки пропечатываются без проблем.
#29
Отправлено 12 января 2006 - 10:23
...
w4.Item('lbType').ClickItem('Организация');
if not w4.item('tbCustINN').exists then log.message('поля ИНН нет!')
else
begin
log.message('поле ИНН есть!');
end;
в Логе сообщение: "Поле ИНН есть!"
но при изменении скрипта:
...
w4.Item('lbType').ClickItem('Организация');
if not w4.item('tbCustINN').exists then log.message('поля ИНН нет!')
else
begin
log.message('поле ИНН есть!');
w4.Item('tbCustINN').Keys('3901010101');
end;
выполенение висит в Playback. Что при это происходит - непонятно...
#30
Отправлено 12 января 2006 - 13:20
Мне кажется, я где-то уже видел описание подобного поведения TestComplete 4 при работе с Веб страницами. Представители AutomatedQA сказали, что эта проблема будет исправлена в следующей версии TestComplete (4.1).
Дмитрий
#31
Отправлено 12 января 2006 - 13:50
а вот обратиться к панели получается не всегда , т.е. я пытаюсь нажать на кнопку, но как выяснилось не находится вся панель..
т.е. иногда скрипт отрабатывает нормально видит панель и нажимает кнопку на ней... иногда выдает ошибку... вываливается на строке в которой пытаюсь обратиться к кнопке....
#32
Отправлено 13 января 2006 - 16:20
А панелька уже загрузилась, когда скрипт пытается к ней обратиться? Может, на страничке несколько фреймов, и вам надо просто добавить пару вызовов метода Page.Wait, чтобы ТС ждал, пока все фреймы не загрузятся.
Еще можно ждать появляния этой панели и только после этого пытаться нажать кнопку. Ждать можно используя метод WaitChild с таймаутом побольше.
Дмитрий
#33
Отправлено 16 января 2006 - 05:55
да панелька уже на форме... ее видно... ожидание тоже пыталась ставить... пыталась ставить огромную паузу в скрипте чтоб уж наверняка все успевало загрузитьсяЗдравствуйте.
А панелька уже загрузилась, когда скрипт пытается к ней обратиться? Может, на страничке несколько фреймов, и вам надо просто добавить пару вызовов метода Page.Wait, чтобы ТС ждал, пока все фреймы не загрузятся.
Еще можно ждать появляния этой панели и только после этого пытаться нажать кнопку. Ждать можно используя метод WaitChild с таймаутом побольше.
ждать именно панель тоже пыталась... не дожидается
еще есть такой момент который сильно смущает....: если я без ТС кликаю на кнопочку на этой панельки... несрабатываний не было... т.е. кнопка всегда работает... а в ТС отказы довольно часто... т.е. выходит что на самом-то деле панелька все-таки загружается...
а еще попробовала в качестве эксперимента... закрывать проект октрывать его снова и запускать скрипт... в 10 случаях из 10 отработало без ошибки... а вот при повторном запуске скрипта, описаная ранее ошибка, вылетает случайным образом...
#34
Отправлено 16 января 2006 - 13:53
Вы используете TestComplete 4? Мне кажется, я уже слышал про подобную проблему, и ее обещали починить в следующем обновлении.
Тем не менее, я советую вам написать в службу поддержки на support@automatedqa.com и послать им пример страницы и скрипта. Это почти наверняка гарантирует, что пролему починят, если еще этого не сделали.
Дмитрий
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных