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

Test Complete 3.0 Enterprise


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

#1 Гость_Сергей Фролов_*

Гость_Сергей Фролов_*
  • Guests

Отправлено 06 ноября 2003 - 06:56

У меня возникла проблема с позиционированием Мыши на экране. В компоненте типа DBGrid необходимо вызвать правой клавишей мыши popup меню, курсор мыши должен стоять на определенной записи в таблице. При одном разрешении экрана нет проблем, но при смене разрешения экрана положение мыши смещается. Вопрос: как совмесить курсор в сетке и указатель мыши?

#2 Case

Case

    Основатель

  • Members
  • PipPipPipPipPipPip
  • 7 071 сообщений
  • ФИО:Панкратов Вячеслав
  • Город:Украина, Киев.

Отправлено 06 ноября 2003 - 08:38

Работайте не от координат на экране, а от объектной модели грида. Спозиционируйте фокус на нужную ячейку и просто вызовите нужный метод.
На координаты привязываться себе дороже выйдет - завтра разработчик перенесёт контрол на 20 пикселей выше и что? переписывать скрипт?
  • 0
Слава Панкратов
Редактор портала www.it4business.ru

#3 Darkus

Darkus

    Опытный участник

  • Members
  • PipPipPipPip
  • 424 сообщений
  • Город:Казахстан, г.Астана

Отправлено 07 ноября 2003 - 08:03

Прошу прощенья.
Но ведь ТК не поддерживает объекты типа "Грид".
Это нужно будет шаманством заниматься и отталкиваться не от объекта, а от того, что нарисовано в форме.
Поясните пожалуйста, как вы работаете от объектной модели грида?
Или вы имеете ввиду просто абстрактный контрол, который в данном случае называет "Грид"?
  • 0

#4 Case

Case

    Основатель

  • Members
  • PipPipPipPipPipPip
  • 7 071 сообщений
  • ФИО:Панкратов Вячеслав
  • Город:Украина, Киев.

Отправлено 10 ноября 2003 - 09:23

Пардон, с каким гридом не работает ТК?
Передать фокус ему можно? Можно.
Стрелки тама всякие он принимает, позиционироваться на определённый роу и колумн тоже можно. Грид беслпатный, пропатченый нашими девелоперами, под наши нужды. .NET
  • 0
Слава Панкратов
Редактор портала www.it4business.ru

#5 Darkus

Darkus

    Опытный участник

  • Members
  • PipPipPipPip
  • 424 сообщений
  • Город:Казахстан, г.Астана

Отправлено 11 ноября 2003 - 10:59

Я имею ввиду, что в ТК такого объекта как ГРИД нет пока ещё.
(В Object Maping посмотрите).
Таким образом функции самого грида недоступны.
Да, действительно, фокус можно передать.
Стрелки он принимает - но это уже не функциональность грида, это просто обычные движения пользователя.
А что значит можно позиционироваться на определённый роу и колумн?
К примеру нажать 5 раз влево и 2 раза вниз?
Я имею ввиду, чтобы можно было сделать что-нибудь вроде такого(грубо говоря):
...Window('Grid').Row=7
...Window('Grid').Column=5
...Window('Grid').GetCurrentValue
Если у вас такое поддерживает, то это действительно здорово.
Поделитесь, плиз, как такое у вас получается?
Или, я просто не совсем вас понял
  • 0

#6 Гость_Guest_*

Гость_Guest_*
  • Guests

Отправлено 11 ноября 2003 - 11:26

Приветствую,

Да, в TestComplete такого объекта нет и, насколько мне известно, и другие средства автоматизированного тестирования с grid-ами в "закрытых" приложениях (т.е. без отладочной информации) не работают/работают плохо.
Если-же у вас есть доступ к исходному коду приложения, то настоятельно рекомендую посетить новостную группу automatedqa.public.testcomplete на сервере forums.automatedqa.com и поискать там сообщения с текстом "grid" и содержащие вложения - там помещалось несколько примеров как получать доступ к даннам grid-а.

Основных подходов два:
1. Создание своего COM-компонента в рамках приложения, который будет отдавать что и как надо в TestComplete.
2. Т.к. grid получает данные не непосредственно, а через DataSource, то работать надо именно с DataSource и получать данные через его свойства.

--
Regards,
Alex
[TeamAQA]
================================

#7 Case

Case

    Основатель

  • Members
  • PipPipPipPipPipPip
  • 7 071 сообщений
  • ФИО:Панкратов Вячеслав
  • Город:Украина, Киев.

Отправлено 11 ноября 2003 - 12:41

Я имею ввиду, чтобы можно было сделать что-нибудь вроде такого(грубо говоря):
...Window('Grid').Row=7
...Window('Grid').Column=5
...Window('Grid').GetCurrentValue

Ну ка-а-а-анечно :)
А что-то типа
...App.Run
...App.Test
...If Log.Analize = OK then goto beer
? :) и жизнь была бы сказка :)

Да, такого нету , но как врено подметил наш упорно не регистрирующийся гость Alex -- с гридами у многих траблы, ТК тут не исключение.

Позиционироваться я пока пробовал именно тыками на сколько нужно (у меня слава богу всё что вытакливается на интерфейс побито на пейджи и 40 раз вниз жать не нужно) -- потом просто выделяется значение в гриде и компарим с чем нужно - или пускаем далее в оборот.
  • 0
Слава Панкратов
Редактор портала www.it4business.ru

#8 Case

Case

    Основатель

  • Members
  • PipPipPipPipPipPip
  • 7 071 сообщений
  • ФИО:Панкратов Вячеслав
  • Город:Украина, Киев.

Отправлено 11 ноября 2003 - 12:42

Да, конечно, не сахар - но работает.
  • 0
Слава Панкратов
Редактор портала www.it4business.ru

#9 Darkus

Darkus

    Опытный участник

  • Members
  • PipPipPipPip
  • 424 сообщений
  • Город:Казахстан, г.Астана

Отправлено 11 ноября 2003 - 12:59

To Alex
Я уже давно смотрю за новостями на automatedqa.public.testcomplete.
В том то и дело, что там обсуждался уже этот вопрос.
И как раз там задавался вопрос, как быть с гридом, если не использовать РекордСеты.
Поэтому я удивился, что здесь говорилось об "объектной модели грида".
Думал, что может быть уже новая версия есть где его поддерживают, как полноценный объект.
  • 0

#10 Case

Case

    Основатель

  • Members
  • PipPipPipPipPipPip
  • 7 071 сообщений
  • ФИО:Панкратов Вячеслав
  • Город:Украина, Киев.

Отправлено 11 ноября 2003 - 13:06

Про модель я прогнал, прошу прощения. Видимо музыкой навеяло :D
  • 0
Слава Панкратов
Редактор портала www.it4business.ru

#11 ShS

ShS

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

  • Members
  • Pip
  • 61 сообщений
  • Город:Россия, Москва

Отправлено 11 ноября 2003 - 13:15

Может не кместу будет сказано, но

Да, в TestComplete такого объекта нет и, насколько мне известно, и другие средства автоматизированного тестирования с grid-ами в "закрытых" приложениях (т.е. без отладочной информации) не работают/работают плохо.

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

По крайней мере это

Я имею ввиду, чтобы можно было сделать что-нибудь вроде такого(грубо говоря):
...Window('Grid').Row=7
...Window('Grid').Column=5
...Window('Grid').GetCurrentValue

WinRunner позволяет делать.
На счет TC ничего пока, к сожалению, сказать не могу :)
  • 0

#12 Гость_Guest_*

Гость_Guest_*
  • Guests

Отправлено 12 ноября 2003 - 11:21

Может не кместу будет сказано, но

Да, в TestComplete такого объекта нет и, насколько мне известно, и другие средства автоматизированного тестирования с grid-ами в "закрытых" приложениях (т.е. без отладочной информации) не работают/работают плохо.

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

По крайней мере это

Я имею ввиду, чтобы можно было сделать что-нибудь вроде такого(грубо говоря):
...Window('Grid').Row=7
...Window('Grid').Column=5
...Window('Grid').GetCurrentValue

WinRunner позволяет делать.
На счет TC ничего пока, к сожалению, сказать не могу :)

Приветствую :)

WinRunner умеет так работать с приложением, которое *собрано без отладочное информации* ?

Я могу ошибаться (не проверял), но, насколько я знаю, если собрать Delphi-приложение с отладочной информацией (и, возможно, использовав Debug Info Agent и отладочную информацию для VCL), то TestComplete позволит напрямую вызывать методы грида, т.е. позиционироваться с указанием строки/столбца. А вот без отладочной информации - пока увы...

--
Regards,
Alex
[TeamAQA]
================================

#13 Mike

Mike

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 1 079 сообщений
  • Город:Москва

Отправлено 13 ноября 2003 - 08:45

Что касается имено Delphi, то WinRunner не умеет работать без внедрения специального компонента (a-la TestComplete), Что касается других сред, то:
ActiveX/VB - умеет работать с некоторыми (около двух десятков) проприетарных гридов
PowerBuilder - умеет, и ещё как
Java - умеет
VC++ - не знаю - не пробовал. Наверное с некоторыми умеет.
Oracle Forms, SAP, PeopleSoft - умеет.

Собственно, Delphi - единственная среда, с которой WR работает a la TestComplete. Во всём виноват VCL ;)
  • 0
Best regards,
Майк.

#14 Alexander

Alexander

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

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

Отправлено 22 января 2004 - 10:09

Прошу прощения... я в упор не видел такого компонента как DBGrid, но в графическом виде представляю его как сетку, которая по мере изменения разрешения изменяет размер ячейки. Так какие проблемы в изменении одной константы задающей размер одной ячейки например либо в диалоговом окне при запуске теста, либо в определении текущего разрешения самим тестом и установке переменной размера в соответствующее значение? :blink: Тогда вероятно можно и адресоваться к ячейкам соответственно Row и Column, алгоритм то не очень сложный. Второй вариант это собрать тестируемое приложение как Open Application и тогда вообще все вопросы отпадают...

Хотя может я и не понял вопроса или ламота в этом деле... тогда прошу не обижаться и забыть, что я написал выше.

Успехов в УБ и ПП.
  • 0

#15 Гость_Guest_*

Гость_Guest_*
  • Guests

Отправлено 22 января 2004 - 11:33

[...] Так какие проблемы в изменении одной константы задающей размер одной ячейки [...]

Боюсь, что проблем будет масса, т.к. размер ячейки (и, соответственно, значение константы) может зависеть от размера шрифта, которым выводится текст, возможности выводить многострочный текст в ячейке, случайного ручного изменения высоты ячейки, которое было запомнено и не восстановлено в значение по умолчанию и т.п. Ширина-же ячеек вообще может устанавливаться автоматически...
Т.е. сделать-то, конечно, можно, но не так просто, как мне кажется, или с целым рядом внутренних соглашений/ограничений.

Regards,
Alex
[TeamAQA]
================================

#16 Alexander

Alexander

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

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

Отправлено 22 января 2004 - 13:01

Если сетка равномерная, т.е. в одном ряду располагаются ячейки одинаковой высоты и в одном столбце одинаковой ширины (как в Excel), то проблем нет ... алгоритм конечно посложнее (поиск графических меток типа чёрное перекрестие со смещением координат поиска и последующим поиском с новыми стартовыми координатами и т.д.) и помедленнее, однако работать он сможет.
В случае неравномерности сетки или отсутствия какого либо графического отображения границ клетки, тогда :unsure: ... трудно что-либо посоветовать.

Успехов в УБ и ПП.
  • 0

#17 Guriy

Guriy

    Опытный участник

  • Members
  • PipPipPipPip
  • 316 сообщений
  • Город:Киев, Украина

Отправлено 23 января 2004 - 15:15

У меня возникла проблема с позиционированием Мыши на экране. В компоненте типа DBGrid необходимо вызвать правой клавишей мыши popup меню, курсор мыши должен стоять на определенной записи в таблице. При одном разрешении экрана нет проблем, но при смене разрешения экрана положение мыши смещается. Вопрос: как совмесить курсор в сетке и указатель мыши?

Да - известная проблема.

Гриды просто рисуются а в области редактирования создается Edit Box.
Поэтому наверно единственным нормальным вариантом будет либо внесение в грид дополнительного API (проскролировать грид, что-бы ячейка стала видимой; получить координаты видимой ячейки) либо эмулировать нажатия на стрелочки и получать координаты появившегося Edit Box.
  • 0


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

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