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

Фотография

Кликнуть по кнопке DevExpress.XtraBars.BarButtonItem


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

#1 anna_tester

anna_tester

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

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

Отправлено 10 июня 2016 - 08:40

Начала ковырять TestComplete 11.31 для .NET-приложения.

Пишу на C# скрипт.

 

В приложении есть окно с меню класса DevExpress.XtraBars.Ribbon.RibbonBarItems:

 

function getDocMenu()
{
  var docMenu = getDocCardWindow().WinFormsObject("ribbonMenu");
  return docMenu;
}
 
В этом меню есть кнопка с раскрывающимся выпадающем списком, собственно, цель - кликнуть по этой кнопке.
Путем поиска по Caption и Description (это свойство совпадает с текстом всплывающей подсказки) выяснила номер Item соответствующего этой кнопке.
Item класса DevExpress.XtraBars.BarButtonItem. У Item есть свойство Links, где дочерними являются два DevExpress.XtraBars.BarButtonItemLink, которые визуально по свойствам друг от друга ничем не отличаются. Их Caption и Description также совпадают с искомой кнопкой.
 
Пробую кликать так:
 
function addClick()
{
  var button = getDocMenu().Items.Item(210);
  var link = button.Links.Item(0);
  link.OnLinkClick();
  //link.OnLinkPress();

  //button.PerformClick();
  //button.OnClick(link);
}

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

 

Получилось кликнуть только следующим образом, но мне кажется, что это некорректно и должен быть какой-нибудь нормальный способ:

 

function addClick()
{
  var button = getDocMenu().Items.Item(210);
  var link = button.Links.Item(0);
  var X = link.ScreenBounds.X + (link.ScreenBounds.Width / 2);
  var Y = link.ScreenBounds.Y + (link.ScreenBounds.Height / 2);
  LLPlayer.MouseMove(X, Y, 0);
  LLPlayer.MouseDown(MK_LBUTTON, X, Y, 0);
}

Подскажите, пожалуйста, может быть, кто-то сталкивался и решил эту проблему.

Заранее спасибо.


  • 0

#2 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 14 июня 2016 - 09:24

может быть вот это поможет ?


  • 0

#3 anna_tester

anna_tester

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

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

Отправлено 14 июня 2016 - 14:01

может быть вот это поможет ?

 

Спасибо за предложение.

Но пока не помогло, пробовала добавлять в свойства проекта > Open Applications > Text Recognition разные варианты:

XtraBars

Ribbon

RibbonBarItems

ribbonMenu

DevExpress.XtraBars.Ribbon.RibbonBarItems

 

Но в дереве объектов у родительского не появляется дочерних. Видимо, это потому что родительское ribbonMenu - это наш кастомный доработанный контрол.


  • 0

#4 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 14 июня 2016 - 21:45

Там ещё ниже написано про асинхронный вызов
  • 0


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

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