Skip to content

Commit

Permalink
И я запоминаю элемент формы клиента тестирования с именем "ИмяЭлемент…
Browse files Browse the repository at this point in the history
…а" в переменную "ИмяПеременной" UI Automation (расширение) #1946
  • Loading branch information
Pr-Mex committed May 8, 2023
1 parent 89295dc commit 1d04c24
Show file tree
Hide file tree
Showing 2 changed files with 244 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,59 @@
</v8:NumberQualifiers>
</Type>
</Attribute>
<Attribute name="ОбработчикТекущаяПодсказка" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработчик текущая подсказка</v8:content>
</v8:item>
</Title>
<Type/>
</Attribute>
<Attribute name="ОбработчикНовыйТекстПодсказка" id="5">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработчик новый текст подсказка</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="ОбработчикИмяПеременной" id="6">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработчик имя переменной</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="ОбработчикИмяЭлемента" id="7">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработчик имя элемента</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
</Attributes>
</Form>
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,22 @@

Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯОткрываюВнешнююОбработкуИлиОтчетРасширение(Парам01)","ЯОткрываюВнешнююОбработкуИлиОтчетРасширение","И я открываю внешнюю обработку или отчет ""ИмяФайла"" (Расширение)","Открывает внешнюю обработку или отчет с помощью расширения VAExtension.","Прочее.Расширение VAExtension.Открыть внешнюю обработку или отчет");

Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,
"ЯЗапоминаюЭлементФормыКлиентаТестированияВПеременнуюUIAutomationрасширение(Парам01,Парам02)",
"ЯЗапоминаюЭлементФормыКлиентаТестированияВПеременнуюUIAutomationрасширение",
"И я запоминаю элемент формы клиента тестирования ""Заголовок"" в переменную ""ИмяПеременной"" UI Automation (расширение)",
"Запоминает ID UI Automation элемента формы клиента тестирования с указанным заголовком в переменную.",
"Прочее.UI Automation.Запомнить ID элемента");

Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,
"ЯЗапоминаюЭлементФормыКлиентаТестированияСИменемВПеременнуюUIAutomationрасширение(Парам01,Парам02)",
"ЯЗапоминаюЭлементФормыКлиентаТестированияСИменемВПеременнуюUIAutomationрасширение",
"И я запоминаю элемент формы клиента тестирования с именем ""ИмяЭлемента"" в переменную ""ИмяПеременной"" UI Automation (расширение)",
"Запоминает ID UI Automation элемента формы клиента тестирования с указанным именем в переменную.",
"Прочее.UI Automation.Запомнить ID элемента");

Возврат ВсеТесты;

КонецФункции

&НаСервере
Expand Down Expand Up @@ -1058,3 +1073,178 @@


КонецФункции

&НаКлиенте
Процедура ЯЗапоминаюЭлементФормыКлиентаТестированияВПеременнуюUIAutomationрасширениеПродолжение2()
Ванесса.ПродолжитьВыполнениеШагов();
КонецПроцедуры

&НаКлиенте
Процедура ЯЗапоминаюЭлементФормыКлиентаТестированияВПеременнуюUIAutomationрасширениеПродолжение()

СвойстваTestClient = Ванесса.ПолучитьДанныеКлиентаТестирования(КонтекстСохраняемый.ТекущийПрофильTestClient);

Если Ванесса.Версия8319ИлиВыше Тогда
ОтборЭлементов = Ванесса.ЗаписатьОбъектJSON(Новый Структура("ProcessId, HelpText", СвойстваTestClient.PIDКлиентаТестирования, ОбработчикНовыйТекстПодсказка));
Иначе
ОтборЭлементов = Ванесса.ЗаписатьОбъектJSON(Новый Структура("ProcessId, LegacyIAccessibleHelp", СвойстваTestClient.PIDКлиентаТестирования, ОбработчикНовыйТекстПодсказка));
КонецЕсли;

ВсеПоля = Ванесса.ПрочитатьОбъектJSON(Ванесса.ВнешняяКомпонентаДляСкриншотов.НайтиЭлементы(ОтборЭлементов));

Если ТипЗнч(ВсеПоля) = Тип("Массив") И ВсеПоля.Количество() = 1 Тогда

IDЭлемента = ВсеПоля[0].Id;
Ванесса.СохранитьЗначениеПеременнойВКонтекст(ОбработчикИмяПеременной, IDЭлемента);

Если ОбработчикТекущаяПодсказка <> Неопределено Тогда
АктивноеОкно = Ванесса.ПолучитьАктивноеОкноИзТестовоеПриложение();
ЗаголовокАктивногоОкна = АктивноеОкно.Заголовок;

Ванесса.ОткрытьНавигационнуюСсылку("e1cib/app/Обработка.VAExtension_ДанныеТекущегоОкна");

АктивноеОкно = Ванесса.ПолучитьАктивноеОкноИзТестовоеПриложение();
РеквизитЗначениеЗаголовокОкна = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку("ЗначениеЗаголовокОкна", Истина);
РеквизитЗначениеЗаголовокОкна.ВвестиТекст(ЗаголовокАктивногоОкна);

РеквизитВыражениеВычислено = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку("ВыражениеВычислено", Истина);
ПараметрВыражение = "_ТекущееОкно.Элементы.%1.Подсказка = ""%2""";
ОбработчикНовыйТекстПодсказка = Строка(Новый УникальныйИдентификатор);
ПараметрВыражение = Ванесса.ПодставитьПараметрыВСтроку(ПараметрВыражение, ОбработчикИмяЭлемента, ОбработчикТекущаяПодсказка);
РеквизитЗначениеВыражение = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку("ЗначениеВыражение", Истина);
РеквизитЗначениеВыражение.ВвестиТекст(ПараметрВыражение);

КнопкаВыполнитьВыражение = АктивноеОкно.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),,"ВыполнитьВыражение");
КнопкаВыполнитьВыражение.Нажать();

Попытка
БылаОшибка = Истина;
Ванесса.ОжиданиеОкончанияОбработки(БылаОшибка, РеквизитВыражениеВычислено);
Если БылаОшибка Тогда
СтрокаСообщения = Ванесса.Локализовать("Не получилось выполнить выражение в контексте текущей формы клиента тестирования.");
ВызватьИсключение СтрокаСообщения;
КонецЕсли;

КнопкаВыполнитьЗакрыть = АктивноеОкно.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),,"ЗакрытьФорму");
Попытка
КнопкаВыполнитьЗакрыть.Нажать();
Исключение
Ванесса.ЗаписатьЛогВЖРИнформация("ВычислениеВыражения", ОписаниеОшибки());
КонецПопытки;

Исключение
Ванесса.ЗаписатьЛогВЖРИнформация("ЯВыполняюВыражениеВТекущемОкнеРасширение", ОписаниеОшибки());
КонецПопытки;

ПодключитьОбработчикОжидания("ЯЗапоминаюЭлементФормыКлиентаТестированияВПеременнуюUIAutomationрасширениеПродолжение2", 0.1, Истина);
Возврат;

КонецЕсли;

Иначе

ТекстИсключения = Ванесса.ПодставитьПараметрыВСтроку(
Ванесса.Локализовать("Не получилось найти элемент формы <%1> с помощью UI Automation."), ОбработчикИмяЭлемента);
Ванесса.ПродолжитьВыполнениеШагов(Истина, ТекстИсключения);
Возврат;

КонецЕсли;

КонецПроцедуры

&НаКлиенте
//И я запоминаю элемент формы клиента тестирования "Заголовок" в переменную "ИмяПеременной" UI Automation (расширение)
//@ЯЗапоминаюЭлементФормыКлиентаТестированияВПеременнуюUIAutomationрасширение(Парам01,Парам02)
Функция ЯЗапоминаюЭлементФормыКлиентаТестированияВПеременнуюUIAutomationрасширение(ИмяЭлемента, ИмяПеременной, ИскатьПоИмени = Ложь) Экспорт

ОбработчикИмяПеременной = ИмяПеременной;

ДопПараметры = Новый Структура;
ДопПараметры.Вставить("КоличествоПопыток", 1);
ПолеРеквизит = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку(ИмяЭлемента, ИскатьПоИмени, Истина,,ДопПараметры);

ОбработчикИмяЭлемента = ПолеРеквизит.Имя;

АктивноеОкно = Ванесса.ПолучитьАктивноеОкноИзТестовоеПриложение();
ЗаголовокАктивногоОкна = АктивноеОкно.Заголовок;

Ванесса.ОткрытьНавигационнуюСсылку("e1cib/app/Обработка.VAExtension_ДанныеТекущегоОкна");


РеквизитВыражениеВычислено = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку("ВыражениеВычислено", Истина);
РеквизитЗначениеРезультат = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку("ЗначениеРезультат", Истина);
РеквизитЗначениеВыражение = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку("ЗначениеВыражение", Истина);
РеквизитЗначениеЗаголовокОкна = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку("ЗначениеЗаголовокОкна", Истина);
РеквизитЗначениеЗаголовокОкна.ВвестиТекст(ЗаголовокАктивногоОкна);

//Получаем значение текущей подсказки
ПараметрВыражение = "_ТекущееОкно.Элементы.%1.Подсказка";
СтрокаUID = Строка(Новый УникальныйИдентификатор);
ПараметрВыражение = Ванесса.ПодставитьПараметрыВСтроку(ПараметрВыражение, ОбработчикИмяЭлемента, СтрокаUID);
РеквизитЗначениеВыражение.ВвестиТекст(ПараметрВыражение);

АктивноеОкно = Ванесса.ПолучитьАктивноеОкноИзТестовоеПриложение();
КнопкаВыполнитьВыражение = АктивноеОкно.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),,"ВыполнитьВыражение");
КнопкаВычислитьВыражение = АктивноеОкно.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),,"ВычислитьВыражение");

КнопкаВычислитьВыражение.Нажать();

ОбработчикТекущаяПодсказка = Неопределено;

Попытка
БылаОшибка = Истина;
Ванесса.ОжиданиеОкончанияОбработки(БылаОшибка, РеквизитВыражениеВычислено);
Если БылаОшибка Тогда
СтрокаСообщения = Ванесса.Локализовать("Не получилось выполнить выражение в контексте текущей формы клиента тестирования.");
ВызватьИсключение СтрокаСообщения;
КонецЕсли;

ОбработчикТекущаяПодсказка = Ванесса.ПолучитьПредставлениеДанныхЭлементаФормы(РеквизитЗначениеРезультат);

Исключение
Ванесса.ЗаписатьЛогВЖРИнформация("ЯВыполняюВыражениеВТекущемОкнеРасширение", ОписаниеОшибки());
КонецПопытки;

//Меняем текст подсказки
РеквизитВыражениеВычислено.УстановитьОтметку();
ПараметрВыражение = "_ТекущееОкно.Элементы.%1.Подсказка = ""%2""";
ОбработчикНовыйТекстПодсказка = Строка(Новый УникальныйИдентификатор);
ПараметрВыражение = Ванесса.ПодставитьПараметрыВСтроку(ПараметрВыражение, ОбработчикИмяЭлемента, ОбработчикНовыйТекстПодсказка);
РеквизитЗначениеВыражение.ВвестиТекст(ПараметрВыражение);

АктивноеОкно = Ванесса.ПолучитьАктивноеОкноИзТестовоеПриложение();
КнопкаВыполнитьВыражение = АктивноеОкно.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),,"ВыполнитьВыражение");
КнопкаВыполнитьВыражение.Нажать();

Попытка
БылаОшибка = Истина;
Ванесса.ОжиданиеОкончанияОбработки(БылаОшибка, РеквизитВыражениеВычислено);
Если БылаОшибка Тогда
СтрокаСообщения = Ванесса.Локализовать("Не получилось выполнить выражение в контексте текущей формы клиента тестирования.");
ВызватьИсключение СтрокаСообщения;
КонецЕсли;

ПредставлениеДанных = Ванесса.ПолучитьПредставлениеДанныхЭлементаФормы(РеквизитЗначениеРезультат);

КнопкаВыполнитьЗакрыть = АктивноеОкно.НайтиОбъект(Тип("ТестируемаяКнопкаФормы"),,"ЗакрытьФорму");
Попытка
КнопкаВыполнитьЗакрыть.Нажать();
Исключение
Ванесса.ЗаписатьЛогВЖРИнформация("ВычислениеВыражения", ОписаниеОшибки());
КонецПопытки;
Исключение
Ванесса.ЗаписатьЛогВЖРИнформация("ЯВыполняюВыражениеВТекущемОкнеРасширение", ОписаниеОшибки());
КонецПопытки;

Ванесса.ЗапретитьВыполнениеШагов();
ПодключитьОбработчикОжидания("ЯЗапоминаюЭлементФормыКлиентаТестированияВПеременнуюUIAutomationрасширениеПродолжение", 0.1, Истина);

КонецФункции

&НаКлиенте
//И я запоминаю элемент формы клиента тестирования с именем "ИмяЭлемента" в переменную "ИмяПеременной" UI Automation (расширение)
//@ЯЗапоминаюЭлементФормыКлиентаТестированияСИменемВПеременнуюUIAutomationрасширение(Парам01,Парам02)
Функция ЯЗапоминаюЭлементФормыКлиентаТестированияСИменемВПеременнуюUIAutomationрасширение(ИмяЭлемента, ИмяПеременной) Экспорт
ЯЗапоминаюЭлементФормыКлиентаТестированияВПеременнуюUIAutomationрасширение(ИмяЭлемента, ИмяПеременной, Истина);
КонецФункции

0 comments on commit 1d04c24

Please sign in to comment.