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

Публикации anna_tester

5 публикаций создано anna_tester (учитываются публикации только с 20 апреля 2023)


#159126 Coded UI: HRESULT E_FAIL has been returned from a call to a COM compon

Отправлено автор: anna_tester 21 марта 2017 - 06:22 в Microsoft - Functional Testing

Если честно, мне этот код не нравится. 

Он пахнет динамическими контролами. 

Проверьте что ваши тесты корректно работают на нескольких версиях SUT. 

Если нет, то надо идти к разработчикам и объяснять, что автоматические тесты невозможны, если невозможно гарантированно и однозначно идентефицировать элементы интерфейса.

Полностью согласна.

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

Спасибо.




#159102 Coded UI: HRESULT E_FAIL has been returned from a call to a COM compon

Отправлено автор: anna_tester 20 марта 2017 - 07:09 в Microsoft - Functional Testing

Проблема была в том, что в браузере объектов отображался не тот контрол, который мне нужен.

Пришлось использовать запись тестов и редактировать автоматически созданный код.

В итоге получилось так:

var loginWindow = new WinWindow();


loginWindow.SearchProperties[WinWindow.PropertyNames.Name] = "layoutControl1";
loginWindow.SearchProperties.Add(new PropertyExpression(WinWindow.PropertyNames.ClassName, "WindowsForms10.Window", PropertyExpressionOperator.Contains));

var loginEdit = new WinEdit(loginWindow);
loginEdit.WindowTitles.Add("layoutControl1");

Keyboard.SendKeys(loginEdit, "test005");



#159032 Coded UI: HRESULT E_FAIL has been returned from a call to a COM compon

Отправлено автор: anna_tester 17 марта 2017 - 09:20 в Microsoft - Functional Testing

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

Пробую написать тест с использованием Coded UI, который запускает приложение и вводит логин в соответствующее поле:

var app = ApplicationUnderTest.Launch(@"C:\app.exe");
var loginEdit = new WinEdit();
loginEdit.SearchProperties.Add(WinEdit.PropertyNames.ControlName, "textEditLogin");
loginEdit.Text = "test005";

Получаю ошибку: System.NotSupportedException: SetProperty "Text" is not supported on control type: Window.

 

Меняю метод ввода текста:

Keyboard.SendKeys(loginEdit, "test005");

Получаю другую ошибку: Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException: (Failed to get the message for an exception of type Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException due to an exception.) ---> System.Runtime.InteropServices.COMException: HRESULT E_FAIL has been returned from a call to a COM component

 

В чем может быть проблема? Прикладываю скриншот со свойствами контрола.

 

Прикрепленные изображения

  • prop.png



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

Отправлено автор: anna_tester 14 июня 2016 - 14:01 в SmartBear (AutomatedQA) - Functional Testing

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

 

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

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

XtraBars

Ribbon

RibbonBarItems

ribbonMenu

DevExpress.XtraBars.Ribbon.RibbonBarItems

 

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




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

Отправлено автор: anna_tester 10 июня 2016 - 08:40 в SmartBear (AutomatedQA) - Functional Testing

Начала ковырять 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);
}

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

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