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

Фотография

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

C# Coded UI VS2013

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

#1 anna_tester

anna_tester

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

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

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

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

Пробую написать тест с использованием 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   32,46К   0 Количество загрузок:

  • 0

#2 Little_CJIOH

Little_CJIOH

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

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 17 марта 2017 - 11:34

Проблема в том, что взаимодействовать вы пытаетесь не с полем ввода а с окном.
А почему оно не делает то, чего вы ожидаете - ХЗ, не работал с Coded UI


  • 0

#3 anna_tester

anna_tester

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

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

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

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

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

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

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");

  • 0

#4 Little_CJIOH

Little_CJIOH

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

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 20 марта 2017 - 10:50

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

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

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

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


  • 0

#5 anna_tester

anna_tester

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

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

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

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

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

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

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

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

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

Спасибо.


  • 0

#6 Little_CJIOH

Little_CJIOH

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

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 21 марта 2017 - 10:11

 

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

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

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

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

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

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

Спасибо.

А вот это зря.

Для меня в свое время большим сюрпризом было то, что разработчики не согласятся добавить кэпшены элементам интерфейса. Причиной оказалось соперничество Российского и Индийского офисов.


  • 0


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

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