@applitools/driver
Version:
Applitools universal framework wrapper
103 lines (102 loc) • 3.88 kB
TypeScript
import type { Location, Size, Region } from '@applitools/utils';
import { type SpecType, type SpecDriver } from './spec-driver';
import { type Context } from './context';
import { type Selector, type CommonSelector } from './selector';
export type ElementReference<T extends SpecType> = T['element'] | T['secondary']['element'] | Selector<T>;
type ElementState = {
contentSize?: Size;
scrollOffset?: Location;
transforms?: any;
attributes?: Record<string, string | Error>;
touchPadding?: number;
containedElements?: Map<any, boolean>;
};
type ElementOptions<T extends SpecType> = {
spec: SpecDriver<T>;
context?: Context<T>;
} & ({
element: T['element'];
selector?: Selector<T>;
index?: number;
} | {
selector: Selector<T>;
index?: number;
});
export declare class Element<T extends SpecType> {
private _target?;
private _context?;
private _selector?;
private _commonSelector;
private _index?;
private _state;
private _originalOverflow;
protected readonly _spec: SpecDriver<T>;
constructor(options: ElementOptions<T>);
get logger(): import("@applitools/logger").Logger;
get target(): NonNullable<T["element"]>;
get selector(): Selector<T> | undefined;
get commonSelector(): CommonSelector | null;
get index(): number | undefined;
get context(): Context<T>;
get driver(): import("./driver").Driver<T>;
get isRef(): boolean;
equals(element: Element<T> | T['element']): Promise<boolean>;
contains(innerElement: Element<T> | T['element']): Promise<boolean>;
init(context: Context<T>): Promise<this>;
getRegion(): Promise<Region>;
getClientRegion(): Promise<Region>;
getContentRegion(options?: {
lazyLoad?: {
scrollLength?: number;
waitingTime?: number;
maxAmountToScroll?: number;
};
}): Promise<Region>;
getContentSize(options?: {
lazyLoad?: {
scrollLength?: number;
waitingTime?: number;
maxAmountToScroll?: number;
};
}): Promise<Size>;
isPager(): Promise<boolean>;
isScrollable(): Promise<boolean>;
isRoot(): Promise<boolean>;
getShadowRoot(): Promise<T['element'] | null>;
getTouchPadding(): Promise<number>;
getText(): Promise<string>;
getAttribute(name: string): Promise<string>;
setAttribute(name: string, value: string): Promise<void>;
scrollTo(offset: Location, options?: {
force: boolean;
}): Promise<Location>;
translateTo(offset: Location): Promise<Location>;
getScrollOffset(): Promise<Location>;
getTranslateOffset(): Promise<Location>;
getInnerOffset(): Promise<Location>;
hover(): Promise<void>;
click(): Promise<void>;
type(value: string): Promise<void>;
preserveState(): Promise<ElementState>;
restoreState(state?: ElementState): Promise<void>;
hideScrollbars(): Promise<void>;
restoreScrollbars(): Promise<void>;
refresh(freshTarget?: T['element']): Promise<boolean>;
withRefresh<TResult>(operation: (...args: any[]) => TResult): Promise<TResult>;
toJSON(): T['element'];
}
export declare function isElementInstance<T extends SpecType>(element: any): element is Element<T>;
export declare function isElement<T extends SpecType>(element: any, spec?: SpecDriver<T>): element is Element<T> | T['element'] | T['secondary']['element'];
export declare function isElementReference<T extends SpecType>(reference: any, spec?: SpecDriver<T>): reference is ElementReference<T>;
export declare function makeElement<T extends SpecType>(options: {
spec: SpecDriver<T>;
context?: Context<T>;
} & ({
element: Element<T> | T['element'] | T['secondary']['element'];
selector?: Selector<T>;
index?: number;
} | {
selector: Selector<T>;
index?: number;
})): Promise<Element<T>>;
export {};