LocatorFactory
Интерфейс для создания асинхронных функций локатора, используемых для поиска элементов и тестовых оболочек компонентов. Этот интерфейс используется авторами ComponentHarness для создания функций локатора для подкласса ComponentHarness.
API
interface LocatorFactory {
documentRootLocatorFactory(): LocatorFactory;
rootElement: TestElement;
locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T): () => Promise<LocatorFnResult<T>>;
locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T): () => Promise<LocatorFnResult<T> | null>;
locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T): () => Promise<LocatorFnResult<T>[]>;
rootHarnessLoader(): Promise<HarnessLoader>;
harnessLoaderFor(selector: string): Promise<HarnessLoader>;
harnessLoaderForOptional(selector: string): Promise<HarnessLoader | null>;
harnessLoaderForAll(selector: string): Promise<HarnessLoader[]>;
forceStabilize(): Promise<void>;
waitForTasksOutsideAngular(): Promise<void>;
}
documentRootLocatorFactory
LocatorFactoryВозвращает фабрику локаторов с корнем в корне документа.
LocatorFactory
rootElement
TestElementКорневой элемент этой LocatorFactory в виде TestElement.
locatorFor
() => Promise<LocatorFnResult<T>>Создает асинхронную функцию локатора, которую можно использовать для поиска экземпляра ComponentHarness или элемента внутри корневого элемента этой LocatorFactory.
Например, для следующей DOM-структуры и при условии, что DivHarness.hostSelector — это 'div'
<div id="d1"></div><div id="d2"></div>
ожидается следующий результат:
await lf.locatorFor(DivHarness, 'div')() // Gets a `DivHarness` instance for #d1
await lf.locatorFor('div', DivHarness)() // Gets a `TestElement` instance for #d1
await lf.locatorFor('span')() // Throws because the `Promise` rejects
TСписок запросов, определяющих, какие тестовые оболочки и элементы необходимо искать:
stringвыполняет поиск элементов, соответствующих указанному в строке CSS-селектору.- Конструктор
ComponentHarnessвыполняет поиск экземпляровComponentHarness, соответствующих указанному классу. HarnessPredicateвыполняет поиск экземпляровComponentHarness, соответствующих заданному предикату.
() => Promise<LocatorFnResult<T>>
locatorForOptional
() => Promise<LocatorFnResult<T> | null>Создает асинхронную функцию локатора, которую можно использовать для поиска экземпляра ComponentHarness или элемента внутри корневого элемента этой LocatorFactory.
Например, для следующей DOM-структуры и при условии, что DivHarness.hostSelector — это 'div'
<div id="d1"></div><div id="d2"></div>
ожидается следующий результат:
await lf.locatorForOptional(DivHarness, 'div')() // Gets a `DivHarness` instance for #d1
await lf.locatorForOptional('div', DivHarness)() // Gets a `TestElement` instance for #d1
await lf.locatorForOptional('span')() // Gets `null`
TСписок запросов, определяющих, какие тестовые оболочки и элементы необходимо искать:
stringвыполняет поиск элементов, соответствующих указанному в строке CSS-селектору.- Конструктор
ComponentHarnessвыполняет поиск экземпляровComponentHarness, соответствующих указанному классу. HarnessPredicateвыполняет поиск экземпляровComponentHarness, соответствующих заданному предикату.
() => Promise<LocatorFnResult<T> | null>
locatorForAll
() => Promise<LocatorFnResult<T>[]>Создает асинхронную функцию локатора, которую можно использовать для поиска экземпляров ComponentHarness или элементов внутри корневого элемента этой LocatorFactory.
Например, для следующей DOM-структуры и при условии, что DivHarness.hostSelector — это 'div', а IdIsD1Harness.hostSelector — это '#d1'
<div id="d1"></div><div id="d2"></div>
ожидается следующий результат:
// Gets [DivHarness for #d1, TestElement for #d1, DivHarness for #d2, TestElement for #d2]
await lf.locatorForAll(DivHarness, 'div')()
// Gets [TestElement for #d1, TestElement for #d2]
await lf.locatorForAll('div', '#d1')()
// Gets [DivHarness for #d1, IdIsD1Harness for #d1, DivHarness for #d2]
await lf.locatorForAll(DivHarness, IdIsD1Harness)()
// Gets []
await lf.locatorForAll('span')()
TСписок запросов, определяющих, какие тестовые оболочки и элементы необходимо искать:
stringвыполняет поиск элементов, соответствующих указанному в строке CSS-селектору.- Конструктор
ComponentHarnessвыполняет поиск экземпляровComponentHarness, соответствующих указанному классу. HarnessPredicateвыполняет поиск экземпляровComponentHarness, соответствующих заданному предикату.
() => Promise<LocatorFnResult<T>[]>
rootHarnessLoader
Promise<HarnessLoader>Promise<HarnessLoader>
harnessLoaderFor
Promise<HarnessLoader>Возвращает экземпляр HarnessLoader для элемента внутри корневого элемента этой LocatorFactory.
stringСелектор корневого элемента.
Promise<HarnessLoader>
harnessLoaderForOptional
Promise<HarnessLoader | null>Возвращает экземпляр HarnessLoader для элемента внутри корневого элемента этой LocatorFactory.
stringСелектор корневого элемента.
Promise<HarnessLoader | null>
harnessLoaderForAll
Promise<HarnessLoader[]>Возвращает список экземпляров HarnessLoader — по одному для каждого соответствующего элемента.
stringСелектор корневого элемента.
Promise<HarnessLoader[]>
forceStabilize
Promise<void>Запускает обнаружение изменений и выполняет асинхронные задачи, перехваченные в зоне Angular. В большинстве случаев вызывать этот метод вручную не требуется. Однако в некоторых особых случаях это может понадобиться для полной обработки событий анимации.
Promise<void>
waitForTasksOutsideAngular
Promise<void>Ожидает завершения всех запланированных или выполняющихся асинхронных задач. Это позволяет авторам тестовых оболочек дождаться завершения асинхронных задач за пределами зоны Angular.
Promise<void>
Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/cdk/testing/LocatorFactory