Перейти к содержимому

TestComplete и .NET Web Application


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 33

#21 ...

...

    Новый участник

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 26 декабря 2005 - 09:45

да спасибо работает... хотя хотелось бы на самом деле не настоящим движением мыши сделать... а просто сказать пункут меню что он был выделен...
но это не очень важно...

но вот как быть с выпадающим подменю....?? в objectbrowser-e оно появляется только после того как хоть раз был выбран один из его пунктов и нажат....
  • 0

#22 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 26 декабря 2005 - 11:23

Здравствуйте.

а просто сказать пункут меню что он был выделен...

У Веб объектов должен быть нативный клик - попробуйте:

obj.NativeWebObject.click();

но вот как быть с выпадающим подменю....?? в objectbrowser-e оно появляется только после того как хоть раз был выбран один из его пунктов и нажат....

А можете дать адрес странички или код, который рисует это меню? Не зная, что за объект, я ничего посоветовать не решаюсь.
  • 0
С уважением,
Дмитрий

#23 ...

...

    Новый участник

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 27 декабря 2005 - 15:13

боюсь что не могу...

но тут прояснилась такая вещь...

нужное мне подменю все-таки есть с самого начала в object browser-е...
но обратиться к нему из скрипта не могу... до тех пор пока оно хоть раз не было нажато..

obj.Exists дает false

это как-то непонятно
  • 0

#24 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 28 декабря 2005 - 08:39

Здравствуйте.

PS. А 'NativeWebObject.click()' тоже не работает?
  • 0
С уважением,
Дмитрий

#25 ...

...

    Новый участник

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 28 декабря 2005 - 09:18

огромное спасибо за помощь..... разобралась теперь все работает.. :smile:

если интересно попробую описать ситуацию...
в objectbrowser-e есть две разные ветви где один и тот же пункт меню описан...но в одной ветке к нему можно обратиться в любой момент времени...
а в другой только после того как хоть раз на меню кликнули....
вобщем это какая-то загадочная для меня ситуация...

'NativeWebObject.click()' волшебная вещь.... :lol: оч. удобно... спасибо за подсказку.. :)

но есть еще вопросик...
в поределенной ситуации выскакивает MessageBox с кнопкой Ok...
как бы сделать чтоб не тыкать мышкой на эту кнопку а сказать что она нажата.... ведь объект виндовый NativeWebObject.click() не подходи.. RaiseEvent тоже не может помочь по-моему.. ведь у этой кнопки нет event-ов
ну т.е. я так понимаю надо сказать что у этого окошка DialogResult.Ok но какого-нибудь похожего свойства я не нахожу...
  • 0

#26 ...

...

    Новый участник

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 29 декабря 2005 - 08:44

обнаружилась новая проблема!! :(

с помощью NativeWebObject.click()
нажимаю на пункт меню... открывается окошко... с которым я не могу ничего делать....
т.е. пока я ручками не закрою окно тесткомплит не переходит на следующую строку скрипта...
как с этим быть?? :(

и в help-е вообще ничего нет про NativeWebObject
  • 0

#27 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 29 декабря 2005 - 13:53

Здравствуйте.

в поределенной ситуации выскакивает MessageBox с кнопкой Ok...
как бы сделать чтоб не тыкать мышкой на эту кнопку а сказать что она нажата.... ведь объект виндовый NativeWebObject.click() не подходи.. RaiseEvent тоже не может помочь по-моему.. ведь у этой кнопки нет event-ов
ну т.е. я так понимаю надо сказать что у этого окошка DialogResult.Ok но какого-нибудь похожего свойства я не нахожу...

Вам надо просто записать автоматически скрипт, закрывающий эту кнопку, и вызывать его в нужный момент. Если окошко может появиться, а может и не появиться, то используйте метод WaitWindow вместо Window. Например:
 dlgWnd = p.WaitWindow("WndClass", "WndCaption", WndIndex);
  if (dlgWnd.Exists) {
    // Закрыть окно
  }

с помощью NativeWebObject.click()
нажимаю на пункт меню... открывается окошко... с которым я не могу ничего делать....
т.е. пока я ручками не закрою окно тесткомплит не переходит на следующую строку скрипта...
как с этим быть?? :(

О, это действительно проблема. Ситуация довольно банальна - при вызове нативного метода click генериться соответствующее событие, которое запускает свой обработчик (показывает диалог, например). Пока обработчик не завершиться (диалог не закроется), метод click управление вызывающему потоку не вернет. Deadlock.
Здесь ничего не могу посоветовать, кроме как все-таки использовать TestComplete'овский метод Click (без NativeWebObject).
Если вы не можете найти способ, как это сделать, рекомендую обратиться в службу поддержки AutomatedQA (support@automatedqa.com).

и в help-е вообще ничего нет про NativeWebObject

Search выдает 7 топиков.
  • 0
С уважением,
Дмитрий

#28 Tata

Tata

    Новый участник

  • Members
  • Pip
  • 2 сообщений

Отправлено 12 января 2006 - 09:17

Здравствуйте!
Возникла проблемка с вводом значения в поле на форме.
Подробнее:
После выбора подпункта меню открывается окно с комбо-боксом (для выбора возможны 2 значения). в зависимости от выбранного значения меняется набор полей для заполнения, но есть и общие для обоих значений ().
Если оставить по умолчанию значение в комбо-боксе, то все заполняется отлично (используя метод Keys()). проблемы начинаются, при выборе второго значения. Формочка обновляется, но! Вызов метода Keys() для нужного поля уводит ТС в "глубокий" playback... (в настройках проекта все стоит по умолчанию,вроде.)
Попробовала отыскать это поле Finder Tool-ом (после остановки скрипта) и оказалось, что ТС не видит этого объекта при выборе значения в комбо... А подсвечивается только фрейм полностью ((
Решила обойти это кликом по координатам и вводом значения. Клик-то проходит, но цифирки в поле не попадают, хотя в логе пишется, что ввод прошел успешно.
P.S. Если в комбо ничего не выбирать, то в проблемное поле цифирки пропечатываются без проблем.
  • 0

#29 Tata

Tata

    Новый участник

  • Members
  • Pip
  • 2 сообщений

Отправлено 12 января 2006 - 10:23

При том, что Finder Tool объект не находит в скрипте поиск объекта тем не менее удачна:
...
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. Что при это происходит - непонятно...
  • 0

#30 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 12 января 2006 - 13:20

Здравствуйте, Tata.

Мне кажется, я где-то уже видел описание подобного поведения TestComplete 4 при работе с Веб страницами. Представители AutomatedQA сказали, что эта проблема будет исправлена в следующей версии TestComplete (4.1).
  • 0
С уважением,
Дмитрий

#31 ...

...

    Новый участник

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 12 января 2006 - 13:50

на форме есть панель с кнопочками... objectbrowser тоже эту панельку видит (по крайней мере всегда когда я проверяю она там есть)
а вот обратиться к панели получается не всегда , т.е. я пытаюсь нажать на кнопку, но как выяснилось не находится вся панель..
т.е. иногда скрипт отрабатывает нормально видит панель и нажимает кнопку на ней... иногда выдает ошибку... вываливается на строке в которой пытаюсь обратиться к кнопке....
  • 0

#32 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 13 января 2006 - 16:20

Здравствуйте.

А панелька уже загрузилась, когда скрипт пытается к ней обратиться? Может, на страничке несколько фреймов, и вам надо просто добавить пару вызовов метода Page.Wait, чтобы ТС ждал, пока все фреймы не загрузятся.

Еще можно ждать появляния этой панели и только после этого пытаться нажать кнопку. Ждать можно используя метод WaitChild с таймаутом побольше.
  • 0
С уважением,
Дмитрий

#33 ...

...

    Новый участник

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 16 января 2006 - 05:55

Здравствуйте.

А панелька уже загрузилась, когда скрипт пытается к ней обратиться? Может, на страничке несколько фреймов, и вам надо просто добавить пару вызовов метода Page.Wait, чтобы ТС ждал, пока все фреймы не загрузятся.

да панелька уже на форме... ее видно... ожидание тоже пыталась ставить... пыталась ставить огромную паузу в скрипте чтоб уж наверняка все успевало загрузиться

Еще можно ждать появляния этой панели и только после этого пытаться нажать кнопку. Ждать можно используя метод WaitChild с таймаутом побольше.

Просмотр сообщения


ждать именно панель тоже пыталась... не дожидается

еще есть такой момент который сильно смущает....: если я без ТС кликаю на кнопочку на этой панельки... несрабатываний не было... т.е. кнопка всегда работает... а в ТС отказы довольно часто... т.е. выходит что на самом-то деле панелька все-таки загружается...

а еще попробовала в качестве эксперимента... закрывать проект октрывать его снова и запускать скрипт... в 10 случаях из 10 отработало без ошибки... а вот при повторном запуске скрипта, описаная ранее ошибка, вылетает случайным образом...
  • 0

#34 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 16 января 2006 - 13:53

Здравствуйте.

Вы используете TestComplete 4? Мне кажется, я уже слышал про подобную проблему, и ее обещали починить в следующем обновлении.

Тем не менее, я советую вам написать в службу поддержки на support@automatedqa.com и послать им пример страницы и скрипта. Это почти наверняка гарантирует, что пролему починят, если еще этого не сделали.
  • 0
С уважением,
Дмитрий


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных