UNPKG

@applitools/driver

Version:

Applitools universal framework wrapper

120 lines (119 loc) 4.83 kB
/// <reference types="node" /> import type { Size, Region } from '@applitools/utils'; import type { DriverInfo, Capabilities, UserAgent, Environment, Viewport, Features, ScreenOrientation, Cookie } from './types'; import { type Selector } from './selector'; import { type SpecType, type SpecDriver, type WaitOptions } from './spec-driver'; import { type Element } from './element'; import { type Logger } from '@applitools/logger'; import { Context, type ContextReference } from './context'; import { HelperIOS } from './helper-ios'; import { HelperAndroid } from './helper-android'; import { inspect } from 'util'; type DriverState<T extends SpecType> = { nmlElement?: Element<T> | null; }; type DriverOptions<T extends SpecType> = { spec: SpecDriver<T>; driver: T['driver']; logger?: Logger; customConfig?: { useCeilForViewportSize?: boolean; }; }; export declare class Driver<T extends SpecType> { private _target; private _mainContext; private _currentContext; private _driverInfo?; private _environment?; private _viewport?; private _features?; private _helper?; private _state; private _customConfig; private _logger; protected readonly _spec: SpecDriver<T>; protected readonly _original: this; constructor(options: DriverOptions<T>); [inspect.custom](): { driverInfo: DriverInfo | undefined; environment: Environment | undefined; viewport: Viewport | undefined; helper: HelperAndroid<T> | HelperIOS<T> | null | undefined; state: DriverState<T>; customConfig: { useCeilForViewportSize?: boolean | undefined; }; features: Features | undefined; }; get logger(): Logger; get target(): T['driver']; get guid(): string; get currentContext(): Context<T>; get mainContext(): Context<T>; updateLogger(logger: Logger): void; updateCurrentContext(context: Context<T>): void; reloadPage(): Promise<this>; refresh({ reset, name }?: { reset?: boolean; name?: string; }): Promise<this>; getDriverInfo({ force }?: { force?: boolean; }): Promise<DriverInfo>; getCapabilities({ force }?: { force?: boolean; }): Promise<Capabilities | null>; getUserAgent({ force }?: { force?: boolean; }): Promise<UserAgent | undefined>; getUserAgentLegacy({ force }?: { force?: boolean; }): Promise<string | undefined>; getEnvironment(): Promise<Environment>; getViewport({ keepNavigationBar }?: { keepNavigationBar?: boolean; }): Promise<Viewport>; getFeatures(): Promise<Features>; getSessionId(): Promise<string | null>; getDriverUrl(): Promise<string | null>; getHelper(): Promise<HelperAndroid<T> | HelperIOS<T> | null>; extractBrokerUrl(): Promise<string | null>; getSessionMetadata(): Promise<any | undefined>; getWorlds(): Promise<string[] | null>; getCurrentWorld(): Promise<string | null>; switchWorld(name?: string): Promise<void>; switchTo(context: Context<T>): Promise<Context<T>>; switchToMainContext(): Promise<Context<T>>; switchToParentContext(elevation?: number): Promise<Context<T>>; switchToChildContext(...references: ContextReference<T>[]): Promise<Context<T>>; normalizeRegion(region: Region): Promise<Region>; getRegionInViewport(context: Context<T>, region: Region): Promise<Region>; takeScreenshot(): Promise<Uint8Array>; getViewportSize(): Promise<Size>; setViewportSize(size: Size): Promise<void>; getDisplaySize(): Promise<Size | undefined>; getOrientation(): Promise<ScreenOrientation | undefined>; setOrientation(orientation: 'portrait' | 'landscape'): Promise<void>; getCookies(): Promise<Cookie[]>; getTitle(): Promise<string>; getUrl(): Promise<string>; element(selector: Selector<T>): Promise<Element<T> | null>; elements(selector: Selector<T>): Promise<Element<T>[]>; waitFor(selector: Selector<T>, options?: WaitOptions): Promise<Element<T> | null>; execute(script: ((arg: any) => any) | string, arg?: any): Promise<any>; executeUserFunction<T>(func: SpecType['userFunction'] | (() => T)): Promise<any>; visit(url: string): Promise<void>; } export declare function isDriverInstance<T extends SpecType>(driver: any): driver is Driver<T>; export declare function isDriver<T extends SpecType>(driver: any, spec?: SpecDriver<T>): driver is Driver<T> | T['driver'] | T['secondary']['driver']; export declare function makeDriver<T extends SpecType>(options: { driver: Driver<T> | T['driver'] | T['secondary']['driver']; spec?: SpecDriver<T>; customConfig?: { useCeilForViewportSize?: boolean; }; reset?: boolean; logger?: Logger; }): Promise<Driver<T>>; export {};