Ожидает появления объекта с указанными параметрами.
Синтаксис
ОжидатьОтображениеОбъекта(<Тип>, <ТекстЗаголовка>, <Имя>, <Таймаут>)Полное описание, параметры и ограничения
ТестируемоеПриложение.ОжидатьОтображениеОбъекта (TestedApplication.WaitForObjectDisplayed)
ТестируемоеПриложение (TestedApplication)
ОжидатьОтображениеОбъекта (WaitForObjectDisplayed)
Доступен, начиная с версии 8.3.1.
Синтаксис:
ОжидатьОтображениеОбъекта(<Тип>, <ТекстЗаголовка>, <Имя>, <Таймаут>)
Параметры:
<Тип> (необязательный)
Тип: Тип.
Тип объекта, который должен появится.
Значение по умолчанию: Неопределено.
<ТекстЗаголовка> (необязательный)
Тип: Строка.
Заголовок объекта, если это применимо. Может содержать знаки подстановки "* "и "?".
<Имя> (необязательный)
Тип: Строка.
Имя объекта, если это применимо. Может содержать знаки подстановки "*" и "?".
<Таймаут> (необязательный)
Тип: Число.
Время ожидания в секундах.
Значение по умолчанию: 60.
Возвращаемое значение:
Тип: Булево.
Истина - объект появился; Ложь - закончился тайм-аут.
Описание:
Ожидает появления объекта с указанными параметрами.
Доступность:
Тонкий клиент, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.1.
Методическая информация
Практические примеры
Ожидать видимость и нужное значение без бесконечного цикла
Проверяем появление своей формы и состояние поля через экспортную функцию. Все ожидания имеют конечные таймауты.
Где и как запускать
Полный клиентский модуль формы обработки в менеджере тестов, запущенном с /TESTMANAGER. Это не модуль тестируемой таблицы.
Подготовка
Создайте собственную пустую учебную конфигурацию УчебнаяКонфигурацияСинтаксиса. Первый урок содержит полный модуль отдельной внешней обработки УчебнаяТаблицаТестирования; её данные только в памяти.
Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.
В тестируемом клиенте вручную откройте собственную обработку из первого урока. В менеджере создайте другую внешнюю обработку с командой ВыполнитьПример; полный код одного теста вставьте в её модуль формы.
Перед каждым тестом закройте и заново откройте таблицу в тестируемом клиенте. Исходно в ней A-01/Книга/3, B-02/Ручка/1, C-00/Бумага/2, без ранее установленной сортировки и редактирования.
Каждый тест ищет точный учебный заголовок и таблицу ТаблицаТоваров внутри этой формы. Не заменяйте селекторы на * или первый найденный элемент рабочего приложения.
Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
Приложение = Новый ТестируемоеПриложение("127.0.0.1", 15380);
Приложение.УстановитьСоединение();
ИсходныйЛимит = Неопределено;
ОшибкаТеста = "";
Попытка
Форма = Приложение.ПолучитьОбъект(Тип("ТестируемаяФорма"), "Учебная таблица guide-owned-ui-2026", , 10);
Таблица = Форма.ПолучитьОбъект(Тип("ТестируемаяТаблицаФормы"), , "ТаблицаТоваров", 10);
ИсходныйЛимит = Приложение.ПолучитьМаксимальноеВремяВыполненияДействия();
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(10);
Появилась = Приложение.ОжидатьОтображениеОбъекта(Тип("ТестируемаяФорма"), "Учебная таблица guide-owned-ui-2026", , 5);
Сообщить(Появилась);
Таблица.Активизировать();
Таблица.ПерейтиКПервойСтроке();
ПараметрыПроверки = Новый Структура("Форма,ИмяПоля,ОжидаемыйТекст", Форма, "ТоварыКоличество", "3");
Условие = Новый ОписаниеОповещения("УчебноеПолеДостиглоСостояния", ЭтотОбъект, ПараметрыПроверки);
Сообщить(Приложение.ОжидатьСостояния(Условие, 5));
Сообщить(Не Приложение.ОжидатьОтображениеОбъекта(Тип("ТестируемаяФорма"), "НеСуществуетGuideOwnedUI2026", , 1));
Исключение
ОшибкаТеста = ОписаниеОшибки();
КонецПопытки;
ОшибкиЗавершения = ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит);
Если Не ПустаяСтрока(ОшибкаТеста) Или Не ПустаяСтрока(ОшибкиЗавершения) Тогда
ВызватьИсключение "Ошибка учебного UI-теста: " + ОшибкаТеста + " " + ОшибкиЗавершения;
КонецЕсли;
Сообщить("Сценарий завершён без исключения. Отдельно сверяйте контрольные Истина и видимые данные учебного клиента");
КонецПроцедуры
&НаКлиенте
Функция ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит)
ОшибкиЗавершения = "";
Если ТипЗнч(ИсходныйЛимит) = Тип("Число") Тогда
Попытка
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(ИсходныйЛимит);
Исключение
ОшибкиЗавершения = "Не восстановлен лимит действий: " + ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Попытка
Приложение.РазорватьСоединение();
Исключение
ОшибкиЗавершения = ОшибкиЗавершения + " Не разорвано соединение: " + ОписаниеОшибки();
КонецПопытки;
Возврат ОшибкиЗавершения;
КонецФункции
&НаКлиенте
Функция УчебноеПолеДостиглоСостояния(ДополнительныеПараметры) Экспорт
Поле = ДополнительныеПараметры.Форма.НайтиОбъект(Тип("ТестируемоеПолеФормы"), , ДополнительныеПараметры.ИмяПоля, 1);
Если Поле = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Возврат Поле.ПолучитьОтображаемыйТекст() = ДополнительныеПараметры.ОжидаемыйТекст;
КонецФункцииРазбор по шагам
Сначала открываем собственную таблицу в отдельном клиенте тестирования. Подключаемся только к 127.0.0.1:15380, ищем точный заголовок и внутреннее имя таблицы с таймаутами 10 секунд.
ОжидатьОтображениеОбъекта возвращает Булево, не найденный объект. Для дальнейших действий объект получают отдельно.
ОжидатьСостояния вызывает функцию, возвращающую Истина/Ложь, с периодичностью по механизму тестирования. Не пишем цикл Пока со сном в клиентском обработчике.
Экспортная функция получает дополнительные параметры уведомления. Ищет конкретное поле с таймаутом 1 секунда и сравнивает отображаемое значение.
Отрицательная проверка заведомо отсутствующей собственной формы ожидает всего 1 секунду. Ложь — нормальный результат истечения ожидания, не исключение.
После теста восстанавливаем исходный лимит действий и отдельно пытаемся разорвать соединение, даже при исключении. Ошибки завершения не скрываем; разрыв соединения не закрывает тестируемое приложение.
Как проверить результат
Три контрольных Истина: форма есть, количество первой Книги равно 3, отсутствующая форма не появилась.
Если количество уже менялось предыдущим тестом, закройте и заново откройте fixture; не подменяйте ожидаемое значение фактическим ради зелёного результата.
Ожидаемый результат
Показано ограниченное ожидание объекта и состояния с настоящей экспортной функцией проверки.
На что обратить внимание
ОжидатьСостояния не принимает обычную процедуру без возвращаемого Булево.
Слишком долгие действия внутри функции проверки могут увеличить реальную длительность ожидания.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.