2015-04-09 2 views
0

Я пытаюсь автоматизировать приложение WPF (WPF с сторонним разработчиком) с использованием кодированного пользовательского интерфейса (VS 2012) на моем локальном компьютере (Windows Server 2008 R2).Невозможно найти пользовательский элемент управления WPF с использованием кодированного ui

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

До некоторой степени я получаю ручку, но после того, как я не получу ручку.

Мое приложение сложное иерархически структурированное с объединением winforms и WPF.

Я попытался использовать кодированную функцию записи и воспроизведения пользовательского интерфейса для создания карты пользовательского интерфейса и использовал ту же структуру для идентификации элементов управления. Он работал при отладке по строкам, но во время работы он не работает.

например. Ниже одна иерархия,

пункт Список

  • Dashboard
  • Dash_Grid
  • LayoutManager
  • LayoutGroup
  • LayoutPanel -> До этого уровня я могу получить ручку и нижнюю I не удалось попасть в управление
  • Контейнер
  • Navtop
  • Nav_Grid
  • TileLayoutControl

    ........ (все плитки)

Этот вопрос не только с одной страницы. У меня такая же проблема со всеми страницами. Поэтому это блокирует нашу автоматизацию.

Пожалуйста, можете мне помочь?

+0

Какая у вас версия в формате devexpress? – Shrivallabh

ответ

0

Попробуйте это два возможных решения:

  1. Используйте расширение DevExpress для codedui, чтобы идентифицировать и локализовать dexExpress управления:

    https://www.devexpress.com/products/net/controls/winforms/coded-ui/

  2. Dont повторить сложную иерархию ваше приложение при идентификации элементов управления, но вместо этого выберите основные элементы управления в иерархии и используйте чтобы установить свойства поиска. это особенно важно для динамически созданного контента, где иерархия постоянно меняется. в вашем примере:

    var List_item = new WpfListItem(parent); 
    
    List_item.SearchProperties.. = some search properties 
    

    и чем установить родитель элемента управления к этому верхнему элементу списка и игнорировать midlle мужчина:

    var Container = new UITestControl(List_item); 
    

    где UITestControl следует заменить элементы управления actuall типа.

+0

Спасибо за ответ Barakcaf. В пунктах 1 любое расширение, которое они упомянули, относится к форме окна. Я хочу расширение devexpress для codedui для элементов управления WPF, а не для управления окнами. В пункте 2 я попытался идентифицировать контроль, выбрав только основные элементы управления. Но все же он не работал. Благодаря, –

Смежные вопросы