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

Фотография

Парадокс пользовательской формы


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

#1 vitaliy4us

vitaliy4us

    Активный участник

  • Members
  • PipPip
  • 81 сообщений

Отправлено 18 марта 2012 - 08:22

Имеется главное окно приложения. В нем есть грид. В гриде есть запись. Запись можно удалить тремя способами - из контекстного меню, с помощью пользовательской кнопки "удалить" и путем нажатия клавиши Delete на клавиатуре. После использования одного из этих трех способов выводится диалог подтверждения с двумя кнопками - "удалить" или "отменить". А теперь, внимание, вопрос: при тестировании с помощью TestComplete первые два способа не вызывают проблем, а вот после имитации нажатия клавиши Delete, диалог появляется, но вот кнопка на нем нажиматься не хочет. Во всех трех случаях для нажатия кнопки используется один и тот же фрагмент кода (в функции, написанной для удаления), окно диалога, как видно из Object Browser, также одно и то же. Кнопка в коде теста указана как btn = Win1.Win2.Win3.Win4.Win5.Win6. Одно из этих Win ТС и не нравится (как видно из окна индикации воспроизведения кода), ожидает его бесконечно, остановить программу с помощью кнопки Стоп невозможно (т.е. это даже не ожидание формы, а остановка теста, поскольку в окне индикации прогресс-бар не двигается, да и в случае ожидания, через 10 сек. оно должно было бы автоматически прекратиться). Но тест не завис и после нажатия нужной кнопки на форме вручную, возобновляется и пишет в логе, что такого объекта нет. Делаю все действия вручную, проверяю вызванное окно диалога - все нормально, объект присутствует. С чем может быть связано такое поведение теста?
  • 0

#2 vitaliy4us

vitaliy4us

    Активный участник

  • Members
  • PipPip
  • 81 сообщений

Отправлено 19 марта 2012 - 06:00

Проблема, в общем-то решена, хотя причины ее остались неизвестными. После замены полного имени элемента FullName на его мапиррованное имя MappedName все заработало. Причем это единственное место в скрипте, где пришлось воспользоваться мапированным именем.
  • 0

#3 Dmitry N

Dmitry N

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

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

Отправлено 19 марта 2012 - 08:05

Причина проблемы и метод её решения описаны в разделе справки Calling Methods Asynchronously.
  • 0
С уважением,
Дмитрий

#4 vitaliy4us

vitaliy4us

    Активный участник

  • Members
  • PipPip
  • 81 сообщений

Отправлено 19 марта 2012 - 16:17

Причина проблемы и метод её решения описаны в разделе справки Calling Methods Asynchronously.

To work around the described problem, you can open a web page or a modal dialog box another way. For instance, you can open the dialog by simulating user actions over the application under test (selecting a menu item or clicking a button on another form). Так и делаю. Кроме того, почему по разному реагирует на FullName и MappedName?
  • 0

#5 Dmitry N

Dmitry N

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

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

Отправлено 21 марта 2012 - 10:08

To work around the described problem, you can open a web page or a modal dialog box another way. For instance, you can open the dialog by simulating user actions over the application under test (selecting a menu item or clicking a button on another form). Так и делаю.

Как мне подсказывает опыт, не всегда так работает. CallObjectMethodAsync надёжнее.

Кроме того, почему по разному реагирует на FullName и MappedName?

Кто реагирует? Как реагирует?
  • 0
С уважением,
Дмитрий

#6 vitaliy4us

vitaliy4us

    Активный участник

  • Members
  • PipPip
  • 81 сообщений

Отправлено 21 марта 2012 - 14:02


To work around the described problem, you can open a web page or a modal dialog box another way. For instance, you can open the dialog by simulating user actions over the application under test (selecting a menu item or clicking a button on another form). Так и делаю.

Как мне подсказывает опыт, не всегда так работает. CallObjectMethodAsync надёжнее.

Кроме того, почему по разному реагирует на FullName и MappedName?

Кто реагирует? Как реагирует?


См. пост №2: После замены полного имени элемента FullName на его мапиррованное имя MappedName все заработало.
  • 0


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

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