@applitools/driver 1.2.4 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/driver.js +7 -2
- package/package.json +10 -5
- package/types/context.d.ts +70 -0
- package/types/driver.d.ts +61 -0
- package/types/element.d.ts +55 -0
- package/types/fake/mock-driver.d.ts +71 -0
- package/types/fake/spec-driver.d.ts +40 -0
- package/types/index.d.ts +5 -0
- package/types/user-agent.d.ts +12 -0
- package/types/utils.d.ts +11 -0
- package/.bongo/dry-run/package-lock.json +0 -30
- package/.bongo/dry-run.tgz +0 -0
- package/.eslintrc +0 -36
- package/src/context.ts +0 -519
- package/src/driver.ts +0 -452
- package/src/element.ts +0 -502
- package/src/fake/mock-driver.d.ts +0 -3
- package/src/fake/mock-driver.js +0 -355
- package/src/fake/spec-driver.d.ts +0 -11
- package/src/fake/spec-driver.js +0 -66
- package/src/index.ts +0 -6
- package/src/user-agent.ts +0 -99
- package/src/utils.ts +0 -77
- package/test/unit/context.spec.ts +0 -243
- package/test/unit/driver.spec.ts +0 -482
- package/test/unit/user-agent.spec.d.ts +0 -1
- package/tsconfig.json +0 -24
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
5
|
|
|
6
|
+
## 1.3.0 - 2021/11/10
|
|
7
|
+
|
|
8
|
+
- updated to @applitools/types@1.0.19 (from 1.0.18)
|
|
9
|
+
|
|
10
|
+
## 1.2.7 - 2021/10/30
|
|
11
|
+
|
|
12
|
+
- updated to @applitools/types@1.0.18 (from 1.0.14)
|
|
13
|
+
- updated to @applitools/utils@1.2.4 (from 1.2.3)
|
|
14
|
+
|
|
15
|
+
## 1.2.6 - 2021/10/7
|
|
16
|
+
|
|
17
|
+
- fix issue with fractional viewport size on mobile devices
|
|
18
|
+
|
|
19
|
+
## 1.2.5 - 2021/10/5
|
|
20
|
+
|
|
21
|
+
- fix issue with wrong user agent overrides valid driver info
|
|
22
|
+
|
|
6
23
|
## 1.2.4 - 2021/9/24
|
|
7
24
|
|
|
8
25
|
- fix issue with switching to the duplicated context
|
package/dist/driver.js
CHANGED
|
@@ -125,13 +125,17 @@ class Driver {
|
|
|
125
125
|
this._currentContext = context;
|
|
126
126
|
}
|
|
127
127
|
async init() {
|
|
128
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
128
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
|
|
129
129
|
this._driverInfo = await ((_b = (_a = this._spec).getDriverInfo) === null || _b === void 0 ? void 0 : _b.call(_a, this.target));
|
|
130
130
|
if (this.isWeb) {
|
|
131
131
|
const userAgent = (_d = (_c = this._driverInfo) === null || _c === void 0 ? void 0 : _c.userAgent) !== null && _d !== void 0 ? _d : (await this.execute(snippets.getUserAgent));
|
|
132
132
|
const pixelRatio = (_f = (_e = this._driverInfo) === null || _e === void 0 ? void 0 : _e.pixelRatio) !== null && _f !== void 0 ? _f : (await this.execute(snippets.getPixelRatio));
|
|
133
133
|
const userAgentInfo = userAgent ? user_agent_1.parseUserAgent(userAgent) : {};
|
|
134
|
-
this._driverInfo = Object.assign(Object.assign({}, this._driverInfo), { isMobile: (_h = (_g = this._driverInfo) === null || _g === void 0 ? void 0 : _g.isMobile) !== null && _h !== void 0 ? _h : ['iOS', 'Android'].includes(userAgentInfo.platformName), platformName: (_j =
|
|
134
|
+
this._driverInfo = Object.assign(Object.assign({}, this._driverInfo), { isMobile: (_h = (_g = this._driverInfo) === null || _g === void 0 ? void 0 : _g.isMobile) !== null && _h !== void 0 ? _h : ['iOS', 'Android'].includes(userAgentInfo.platformName), platformName: ((_j = this._driverInfo) === null || _j === void 0 ? void 0 : _j.isMobile)
|
|
135
|
+
? (_l = (_k = this._driverInfo) === null || _k === void 0 ? void 0 : _k.platformName) !== null && _l !== void 0 ? _l : userAgentInfo.platformName
|
|
136
|
+
: (_m = userAgentInfo.platformName) !== null && _m !== void 0 ? _m : (_o = this._driverInfo) === null || _o === void 0 ? void 0 : _o.platformName, platformVersion: ((_p = this._driverInfo) === null || _p === void 0 ? void 0 : _p.isMobile)
|
|
137
|
+
? (_r = (_q = this._driverInfo) === null || _q === void 0 ? void 0 : _q.platformVersion) !== null && _r !== void 0 ? _r : userAgentInfo.platformVersion
|
|
138
|
+
: (_s = userAgentInfo.platformVersion) !== null && _s !== void 0 ? _s : (_t = this._driverInfo) === null || _t === void 0 ? void 0 : _t.platformVersion, browserName: (_u = userAgentInfo.browserName) !== null && _u !== void 0 ? _u : (_v = this._driverInfo) === null || _v === void 0 ? void 0 : _v.browserName, browserVersion: (_w = userAgentInfo.browserVersion) !== null && _w !== void 0 ? _w : (_x = this._driverInfo) === null || _x === void 0 ? void 0 : _x.browserVersion, userAgent,
|
|
135
139
|
pixelRatio });
|
|
136
140
|
}
|
|
137
141
|
else {
|
|
@@ -350,6 +354,7 @@ class Driver {
|
|
|
350
354
|
}
|
|
351
355
|
}
|
|
352
356
|
}
|
|
357
|
+
size = utils.geometry.round(size);
|
|
353
358
|
}
|
|
354
359
|
else if (this._spec.getViewportSize) {
|
|
355
360
|
this._logger.log('Extracting viewport size from web driver using spec method');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/driver",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Applitools universal framework wrapper",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"applitools",
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
},
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
|
19
|
-
"url": "git://github.com/applitools/eyes.sdk.javascript1.git"
|
|
19
|
+
"url": "git://github.com/applitools/eyes.sdk.javascript1.git",
|
|
20
|
+
"directory": "packages/driver"
|
|
20
21
|
},
|
|
21
22
|
"license": "SEE LICENSE IN LICENSE",
|
|
22
23
|
"author": {
|
|
@@ -29,6 +30,10 @@
|
|
|
29
30
|
"lib": "./src",
|
|
30
31
|
"test": "./test"
|
|
31
32
|
},
|
|
33
|
+
"files": [
|
|
34
|
+
"dist",
|
|
35
|
+
"types"
|
|
36
|
+
],
|
|
32
37
|
"scripts": {
|
|
33
38
|
"lint": "eslint '**/*.ts' '**/*.js'",
|
|
34
39
|
"build": "tsc",
|
|
@@ -45,11 +50,11 @@
|
|
|
45
50
|
},
|
|
46
51
|
"dependencies": {
|
|
47
52
|
"@applitools/snippets": "2.1.7",
|
|
48
|
-
"@applitools/types": "1.0.
|
|
49
|
-
"@applitools/utils": "1.2.
|
|
53
|
+
"@applitools/types": "1.0.19",
|
|
54
|
+
"@applitools/utils": "1.2.4"
|
|
50
55
|
},
|
|
51
56
|
"devDependencies": {
|
|
52
|
-
"@applitools/sdk-release-kit": "0.13.
|
|
57
|
+
"@applitools/sdk-release-kit": "0.13.4",
|
|
53
58
|
"@types/mocha": "^9.0.0",
|
|
54
59
|
"@types/node": "^16.3.3",
|
|
55
60
|
"@typescript-eslint/eslint-plugin": "^4.28.3",
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type * as types from '@applitools/types';
|
|
2
|
+
import type { Driver } from './driver';
|
|
3
|
+
import { Element } from './element';
|
|
4
|
+
export declare type ContextReference<TDriver, TContext, TElement, TSelector> = Context<TDriver, TContext, TElement, TSelector> | Element<TDriver, TContext, TElement, TSelector> | TElement | types.Selector<TSelector> | string | number;
|
|
5
|
+
export declare type ContextPlain<TDriver, TContext, TElement, TSelector> = ContextReference<TDriver, TContext, TElement, TSelector> | {
|
|
6
|
+
reference: ContextReference<TDriver, TContext, TElement, TSelector>;
|
|
7
|
+
scrollingElement?: Element<TDriver, TContext, TElement, TSelector>;
|
|
8
|
+
parent?: ContextPlain<TDriver, TContext, TElement, TSelector>;
|
|
9
|
+
};
|
|
10
|
+
export declare type ContextState = {
|
|
11
|
+
region?: types.Region;
|
|
12
|
+
clientRegion?: types.Region;
|
|
13
|
+
scrollingRegion?: types.Region;
|
|
14
|
+
innerOffset?: types.Location;
|
|
15
|
+
};
|
|
16
|
+
export declare class Context<TDriver, TContext, TElement, TSelector> {
|
|
17
|
+
private _target;
|
|
18
|
+
private _driver;
|
|
19
|
+
private _parent;
|
|
20
|
+
private _element;
|
|
21
|
+
private _reference;
|
|
22
|
+
private _scrollingElement;
|
|
23
|
+
private _state;
|
|
24
|
+
private _logger;
|
|
25
|
+
private _utils;
|
|
26
|
+
private _isReference;
|
|
27
|
+
protected readonly _spec: types.SpecDriver<TDriver, TContext, TElement, TSelector>;
|
|
28
|
+
constructor(options: {
|
|
29
|
+
spec: types.SpecDriver<TDriver, TContext, TElement, TSelector>;
|
|
30
|
+
context?: TContext | Context<TDriver, TContext, TElement, TSelector>;
|
|
31
|
+
driver?: Driver<TDriver, TContext, TElement, TSelector>;
|
|
32
|
+
parent?: Context<TDriver, TContext, TElement, TSelector>;
|
|
33
|
+
reference?: ContextReference<TDriver, TContext, TElement, TSelector>;
|
|
34
|
+
element?: Element<TDriver, TContext, TElement, TSelector>;
|
|
35
|
+
scrollingElement?: Element<TDriver, TContext, TElement, TSelector>;
|
|
36
|
+
logger?: any;
|
|
37
|
+
});
|
|
38
|
+
get target(): TContext;
|
|
39
|
+
get driver(): Driver<TDriver, TContext, TElement, TSelector>;
|
|
40
|
+
get parent(): Context<TDriver, TContext, TElement, TSelector> | null;
|
|
41
|
+
get main(): Context<TDriver, TContext, TElement, TSelector>;
|
|
42
|
+
get path(): Context<TDriver, TContext, TElement, TSelector>[];
|
|
43
|
+
get isMain(): boolean;
|
|
44
|
+
get isCurrent(): boolean;
|
|
45
|
+
get isInitialized(): boolean;
|
|
46
|
+
get isRef(): boolean;
|
|
47
|
+
init(): Promise<this>;
|
|
48
|
+
focus(): Promise<this>;
|
|
49
|
+
equals(context: Context<TDriver, TContext, TElement, TSelector> | Element<TDriver, TContext, TElement, TSelector>): Promise<boolean>;
|
|
50
|
+
context(reference: ContextPlain<TDriver, TContext, TElement, TSelector>): Promise<Context<TDriver, TContext, TElement, TSelector>>;
|
|
51
|
+
element(elementOrSelector: TElement | types.Selector<TSelector>): Promise<Element<TDriver, TContext, TElement, TSelector>>;
|
|
52
|
+
elements(elementOrSelector: TElement | types.Selector<TSelector>): Promise<Element<TDriver, TContext, TElement, TSelector>[]>;
|
|
53
|
+
execute(script: ((args: any) => any) | string, arg?: any): Promise<any>;
|
|
54
|
+
getContextElement(): Promise<Element<TDriver, TContext, TElement, TSelector>>;
|
|
55
|
+
getScrollingElement(): Promise<Element<TDriver, TContext, TElement, TSelector>>;
|
|
56
|
+
setScrollingElement(scrollingElement: Element<TDriver, TContext, TElement, TSelector> | TElement | types.Selector<TSelector>): Promise<void>;
|
|
57
|
+
blurElement(element?: Element<TDriver, TContext, TElement, TSelector>): Promise<TElement>;
|
|
58
|
+
focusElement(element: Element<TDriver, TContext, TElement, TSelector>): Promise<any>;
|
|
59
|
+
getRegion(): Promise<types.Region>;
|
|
60
|
+
getClientRegion(): Promise<types.Region>;
|
|
61
|
+
getScrollingRegion(): Promise<types.Region>;
|
|
62
|
+
getContentSize(): Promise<types.Size>;
|
|
63
|
+
getInnerOffset(): Promise<types.Location>;
|
|
64
|
+
getLocationInMainContext(): Promise<types.Location>;
|
|
65
|
+
getLocationInViewport(): Promise<types.Location>;
|
|
66
|
+
getRegionInViewport(region: types.Region): Promise<types.Region>;
|
|
67
|
+
private preserveInnerOffset;
|
|
68
|
+
private preserveContextRegions;
|
|
69
|
+
private preserveScrollingRegion;
|
|
70
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type * as types from '@applitools/types';
|
|
3
|
+
import { Context, ContextReference } from './context';
|
|
4
|
+
import { Element } from './element';
|
|
5
|
+
export declare class Driver<TDriver, TContext, TElement, TSelector> {
|
|
6
|
+
private _target;
|
|
7
|
+
private _mainContext;
|
|
8
|
+
private _currentContext;
|
|
9
|
+
private _driverInfo;
|
|
10
|
+
private _logger;
|
|
11
|
+
private _utils;
|
|
12
|
+
protected readonly _spec: types.SpecDriver<TDriver, TContext, TElement, TSelector>;
|
|
13
|
+
constructor(options: {
|
|
14
|
+
spec: types.SpecDriver<TDriver, TContext, TElement, TSelector>;
|
|
15
|
+
driver: Driver<TDriver, TContext, TElement, TSelector> | TDriver;
|
|
16
|
+
logger?: any;
|
|
17
|
+
});
|
|
18
|
+
get target(): TDriver;
|
|
19
|
+
get currentContext(): Context<TDriver, TContext, TElement, TSelector>;
|
|
20
|
+
get mainContext(): Context<TDriver, TContext, TElement, TSelector>;
|
|
21
|
+
get features(): {
|
|
22
|
+
shadowSelector?: boolean;
|
|
23
|
+
allCookies?: boolean;
|
|
24
|
+
};
|
|
25
|
+
get deviceName(): string;
|
|
26
|
+
get platformName(): string;
|
|
27
|
+
get platformVersion(): string | number;
|
|
28
|
+
get browserName(): string;
|
|
29
|
+
get browserVersion(): string | number;
|
|
30
|
+
get userAgent(): string;
|
|
31
|
+
get pixelRatio(): number;
|
|
32
|
+
get statusBarHeight(): number;
|
|
33
|
+
get navigationBarHeight(): number;
|
|
34
|
+
get isNative(): boolean;
|
|
35
|
+
get isWeb(): boolean;
|
|
36
|
+
get isMobile(): boolean;
|
|
37
|
+
get isIOS(): boolean;
|
|
38
|
+
get isAndroid(): boolean;
|
|
39
|
+
get isIE(): boolean;
|
|
40
|
+
get isEdgeLegacy(): boolean;
|
|
41
|
+
updateCurrentContext(context: Context<TDriver, TContext, TElement, TSelector>): void;
|
|
42
|
+
init(): Promise<this>;
|
|
43
|
+
refreshContexts(): Promise<Context<TDriver, TContext, TElement, TSelector>>;
|
|
44
|
+
switchTo(context: Context<TDriver, TContext, TElement, TSelector>): Promise<Context<TDriver, TContext, TElement, TSelector>>;
|
|
45
|
+
switchToMainContext(): Promise<Context<TDriver, TContext, TElement, TSelector>>;
|
|
46
|
+
switchToParentContext(elevation?: number): Promise<Context<TDriver, TContext, TElement, TSelector>>;
|
|
47
|
+
switchToChildContext(...references: ContextReference<TDriver, TContext, TElement, TSelector>[]): Promise<Context<TDriver, TContext, TElement, TSelector>>;
|
|
48
|
+
normalizeRegion(region: types.Region): Promise<types.Region>;
|
|
49
|
+
getRegionInViewport(context: Context<TDriver, TContext, TElement, TSelector>, region: types.Region): Promise<types.Region>;
|
|
50
|
+
element(selector: types.Selector<TSelector>): Promise<Element<TDriver, TContext, TElement, TSelector>>;
|
|
51
|
+
elements(selector: types.Selector<TSelector>): Promise<Element<TDriver, TContext, TElement, TSelector>[]>;
|
|
52
|
+
execute(script: ((arg: any) => any) | string, arg?: any): Promise<any>;
|
|
53
|
+
takeScreenshot(): Promise<Buffer | string>;
|
|
54
|
+
getViewportSize(): Promise<types.Size>;
|
|
55
|
+
setViewportSize(size: types.Size): Promise<void>;
|
|
56
|
+
getDisplaySize(): Promise<types.Size>;
|
|
57
|
+
getOrientation(): Promise<'portrait' | 'landscape'>;
|
|
58
|
+
getTitle(): Promise<string>;
|
|
59
|
+
getUrl(): Promise<string>;
|
|
60
|
+
visit(url: string): Promise<void>;
|
|
61
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type * as types from '@applitools/types';
|
|
2
|
+
import type { Context } from './context';
|
|
3
|
+
export declare type ElementState = {
|
|
4
|
+
contentSize?: types.Size;
|
|
5
|
+
scrollOffset?: types.Location;
|
|
6
|
+
transforms?: any;
|
|
7
|
+
};
|
|
8
|
+
export declare class Element<TDriver, TContext, TElement, TSelector> {
|
|
9
|
+
private _target;
|
|
10
|
+
private _context;
|
|
11
|
+
private _selector;
|
|
12
|
+
private _index;
|
|
13
|
+
private _state;
|
|
14
|
+
private _originalOverflow;
|
|
15
|
+
private _touchPadding;
|
|
16
|
+
private _logger;
|
|
17
|
+
private _utils;
|
|
18
|
+
protected readonly _spec: types.SpecDriver<TDriver, TContext, TElement, TSelector>;
|
|
19
|
+
constructor(options: {
|
|
20
|
+
spec: types.SpecDriver<TDriver, TContext, TElement, TSelector>;
|
|
21
|
+
element?: TElement | Element<TDriver, TContext, TElement, TSelector>;
|
|
22
|
+
context?: Context<TDriver, TContext, TElement, TSelector>;
|
|
23
|
+
selector?: types.Selector<TSelector>;
|
|
24
|
+
index?: number;
|
|
25
|
+
logger?: any;
|
|
26
|
+
});
|
|
27
|
+
get target(): TElement;
|
|
28
|
+
get selector(): types.Selector<TSelector>;
|
|
29
|
+
get context(): Context<TDriver, TContext, TElement, TSelector>;
|
|
30
|
+
get driver(): import("./driver").Driver<TDriver, TContext, TElement, TSelector>;
|
|
31
|
+
get isRef(): boolean;
|
|
32
|
+
equals(element: Element<TDriver, TContext, TElement, TSelector> | TElement): Promise<boolean>;
|
|
33
|
+
init(context: Context<TDriver, TContext, TElement, TSelector>): Promise<this>;
|
|
34
|
+
getRegion(): Promise<types.Region>;
|
|
35
|
+
getClientRegion(): Promise<types.Region>;
|
|
36
|
+
getContentSize(): Promise<types.Size>;
|
|
37
|
+
isScrollable(): Promise<boolean>;
|
|
38
|
+
isRoot(): Promise<boolean>;
|
|
39
|
+
getTouchPadding(): Promise<number>;
|
|
40
|
+
getAttribute(name: string): Promise<string>;
|
|
41
|
+
setAttribute(name: string, value: string): Promise<void>;
|
|
42
|
+
scrollTo(offset: types.Location): Promise<types.Location>;
|
|
43
|
+
translateTo(offset: types.Location): Promise<types.Location>;
|
|
44
|
+
getScrollOffset(): Promise<types.Location>;
|
|
45
|
+
getTranslateOffset(): Promise<types.Location>;
|
|
46
|
+
getInnerOffset(): Promise<types.Location>;
|
|
47
|
+
click(): Promise<void>;
|
|
48
|
+
preserveState(): Promise<ElementState>;
|
|
49
|
+
restoreState(state?: ElementState): Promise<void>;
|
|
50
|
+
hideScrollbars(): Promise<void>;
|
|
51
|
+
restoreScrollbars(): Promise<void>;
|
|
52
|
+
refresh(freshElement?: TElement): Promise<boolean>;
|
|
53
|
+
withRefresh<TResult>(operation: (...args: any[]) => TResult): Promise<TResult>;
|
|
54
|
+
toJSON(): TElement;
|
|
55
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export class MockDriver {
|
|
3
|
+
constructor({ viewport, device, platform, browser, ua }?: {
|
|
4
|
+
viewport?: {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
};
|
|
8
|
+
device: any;
|
|
9
|
+
platform: any;
|
|
10
|
+
browser: any;
|
|
11
|
+
ua: any;
|
|
12
|
+
});
|
|
13
|
+
_device: any;
|
|
14
|
+
_platform: any;
|
|
15
|
+
_browser: any;
|
|
16
|
+
_ua: any;
|
|
17
|
+
_window: {
|
|
18
|
+
title: string;
|
|
19
|
+
url: string;
|
|
20
|
+
rect: {
|
|
21
|
+
width: number;
|
|
22
|
+
height: number;
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
_methods: Map<any, any>;
|
|
28
|
+
_scripts: Map<any, any>;
|
|
29
|
+
_elements: Map<any, any>;
|
|
30
|
+
_contexts: Map<any, any>;
|
|
31
|
+
_contextId: any;
|
|
32
|
+
mockScript(scriptMatcher: any, resultGenerator: any): void;
|
|
33
|
+
mockElement(selector: any, state: any): any;
|
|
34
|
+
mockElements(nodes: any, { parentId, parentContextId, parentRootId }?: {
|
|
35
|
+
parentId?: any;
|
|
36
|
+
parentContextId?: any;
|
|
37
|
+
parentRootId?: any;
|
|
38
|
+
}): void;
|
|
39
|
+
mockSelector(selector: any, element: any): void;
|
|
40
|
+
wrapMethod(name: any, wrapper: any): void;
|
|
41
|
+
unwrapMethod(name: any): void;
|
|
42
|
+
get info(): {
|
|
43
|
+
isMobile: boolean;
|
|
44
|
+
isNative: boolean;
|
|
45
|
+
deviceName: any;
|
|
46
|
+
platformName: any;
|
|
47
|
+
platformVersion: any;
|
|
48
|
+
browserName: any;
|
|
49
|
+
browserVersion: any;
|
|
50
|
+
};
|
|
51
|
+
executeScript(script: any, args?: any[]): Promise<any>;
|
|
52
|
+
findElement(selector: any, rootElement: any): Promise<any>;
|
|
53
|
+
findElements(selector: any, rootElement: any): Promise<any>;
|
|
54
|
+
switchToFrame(reference: any): Promise<MockDriver>;
|
|
55
|
+
switchToParentFrame(): Promise<MockDriver>;
|
|
56
|
+
getWindowRect(): Promise<{
|
|
57
|
+
width: number;
|
|
58
|
+
height: number;
|
|
59
|
+
x: number;
|
|
60
|
+
y: number;
|
|
61
|
+
}>;
|
|
62
|
+
setWindowRect(rect: any): Promise<void>;
|
|
63
|
+
getUrl(): Promise<string>;
|
|
64
|
+
getTitle(): Promise<string>;
|
|
65
|
+
visit(url: any): Promise<void>;
|
|
66
|
+
takeScreenshot(): Promise<void>;
|
|
67
|
+
toString(): string;
|
|
68
|
+
toJSON(): string;
|
|
69
|
+
[inspect.custom](): string;
|
|
70
|
+
}
|
|
71
|
+
import { inspect } from "util";
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export namespace spec {
|
|
2
|
+
function isDriver(driver: any): boolean;
|
|
3
|
+
function isDriver(driver: any): boolean;
|
|
4
|
+
function isElement(element: any): boolean;
|
|
5
|
+
function isElement(element: any): boolean;
|
|
6
|
+
function isSelector(selector: any): boolean;
|
|
7
|
+
function isSelector(selector: any): boolean;
|
|
8
|
+
function transformSelector(selector: any): any;
|
|
9
|
+
function transformSelector(selector: any): any;
|
|
10
|
+
function isStaleElementError(): boolean;
|
|
11
|
+
function isStaleElementError(): boolean;
|
|
12
|
+
function isEqualElements(_driver: any, element1: any, element2: any): boolean;
|
|
13
|
+
function isEqualElements(_driver: any, element1: any, element2: any): boolean;
|
|
14
|
+
function executeScript(driver: any, script: any, ...args: any[]): any;
|
|
15
|
+
function executeScript(driver: any, script: any, ...args: any[]): any;
|
|
16
|
+
function findElement(driver: any, selector: any, parent: any): any;
|
|
17
|
+
function findElement(driver: any, selector: any, parent: any): any;
|
|
18
|
+
function findElements(driver: any, selector: any, parent: any): any;
|
|
19
|
+
function findElements(driver: any, selector: any, parent: any): any;
|
|
20
|
+
function mainContext(driver: any): any;
|
|
21
|
+
function mainContext(driver: any): any;
|
|
22
|
+
function parentContext(driver: any): any;
|
|
23
|
+
function parentContext(driver: any): any;
|
|
24
|
+
function childContext(driver: any, reference: any): any;
|
|
25
|
+
function childContext(driver: any, reference: any): any;
|
|
26
|
+
function takeScreenshot(driver: any): any;
|
|
27
|
+
function takeScreenshot(driver: any): any;
|
|
28
|
+
function getDriverInfo(driver: any): any;
|
|
29
|
+
function getDriverInfo(driver: any): any;
|
|
30
|
+
function getWindowSize(driver: any): Promise<any>;
|
|
31
|
+
function getWindowSize(driver: any): Promise<any>;
|
|
32
|
+
function setWindowSize(driver: any, size: any): Promise<void>;
|
|
33
|
+
function setWindowSize(driver: any, size: any): Promise<void>;
|
|
34
|
+
function getUrl(driver: any): Promise<any>;
|
|
35
|
+
function getUrl(driver: any): Promise<any>;
|
|
36
|
+
function getTitle(driver: any): Promise<any>;
|
|
37
|
+
function getTitle(driver: any): Promise<any>;
|
|
38
|
+
function visit(driver: any, url: any): Promise<void>;
|
|
39
|
+
function visit(driver: any, url: any): Promise<void>;
|
|
40
|
+
}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare type PlatformInfo = {
|
|
2
|
+
platformName: string;
|
|
3
|
+
platformVersion?: string;
|
|
4
|
+
};
|
|
5
|
+
declare type BrowserInfo = {
|
|
6
|
+
browserName: string;
|
|
7
|
+
browserVersion?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function parseUserAgent(userAgent: string): PlatformInfo & BrowserInfo;
|
|
10
|
+
export declare function parsePlatform(userAgent: string): PlatformInfo;
|
|
11
|
+
export declare function parseBrowser(userAgent: string): BrowserInfo;
|
|
12
|
+
export {};
|
package/types/utils.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type * as types from '@applitools/types';
|
|
2
|
+
export declare type SpecUtils<_TDriver, TContext, TElement, TSelector> = {
|
|
3
|
+
isSelector(selector: any): selector is types.Selector<TSelector>;
|
|
4
|
+
transformSelector(selector: types.Selector<TSelector>): TSelector;
|
|
5
|
+
splitSelector(selector: types.Selector<TSelector>): types.Selector<TSelector>[];
|
|
6
|
+
findRootElement(context: TContext, selector: types.Selector<TSelector>): Promise<{
|
|
7
|
+
root: TElement;
|
|
8
|
+
selector: types.Selector<TSelector>;
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
export declare function makeSpecUtils<TDriver, TContext, TElement, TSelector>(spec: types.SpecDriver<TDriver, TContext, TElement, TSelector>): SpecUtils<TDriver, TContext, TElement, TSelector>;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"requires": true,
|
|
3
|
-
"lockfileVersion": 1,
|
|
4
|
-
"dependencies": {
|
|
5
|
-
"@applitools/driver": {
|
|
6
|
-
"version": "file:../dry-run.tgz",
|
|
7
|
-
"integrity": "sha512-bWybD9hKoQqS6LFHBKDpgE42vtg3QfQzm9PqlNtvDVhsKFFFZs0ZekT3Kiz8Dbi15T5ELubrwtRSjN4oBjg1AQ==",
|
|
8
|
-
"requires": {
|
|
9
|
-
"@applitools/snippets": "2.1.7",
|
|
10
|
-
"@applitools/types": "1.0.14",
|
|
11
|
-
"@applitools/utils": "1.2.3"
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
"@applitools/snippets": {
|
|
15
|
-
"version": "2.1.7",
|
|
16
|
-
"resolved": "https://registry.npmjs.org/@applitools/snippets/-/snippets-2.1.7.tgz",
|
|
17
|
-
"integrity": "sha512-Tr4Gj7Qov/oPy+8WI4oVmmubxqpOzr8P3Wjzpl6rA57xKLg6/TiIg5oZNb4+jEmO2ShjNYLaEwRWHl7kPgb4fw=="
|
|
18
|
-
},
|
|
19
|
-
"@applitools/types": {
|
|
20
|
-
"version": "1.0.14",
|
|
21
|
-
"resolved": "https://registry.npmjs.org/@applitools/types/-/types-1.0.14.tgz",
|
|
22
|
-
"integrity": "sha512-Exfi8EOGGBwpRpaLizXmsUXInXGXNU26qup7AjLJSJLYETwn3Q3W+0aLHBUbdFA87w9fPCQjXJuZxJgqsNpVig=="
|
|
23
|
-
},
|
|
24
|
-
"@applitools/utils": {
|
|
25
|
-
"version": "1.2.3",
|
|
26
|
-
"resolved": "https://registry.npmjs.org/@applitools/utils/-/utils-1.2.3.tgz",
|
|
27
|
-
"integrity": "sha512-MZXsrzeHTvjFLzpfyKRDUmZWzNxH3gWd3reqYf+1kYimALKB3CO82VDNmkaGJykrRbxEP03Yqha7fHJj9eKslQ=="
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
package/.bongo/dry-run.tgz
DELETED
|
Binary file
|
package/.eslintrc
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"root": true,
|
|
3
|
-
"ignorePatterns": [
|
|
4
|
-
"node_modules/",
|
|
5
|
-
"dist/",
|
|
6
|
-
"logs",
|
|
7
|
-
"tmp/",
|
|
8
|
-
"types/",
|
|
9
|
-
"test/generic/",
|
|
10
|
-
"*.d.ts"
|
|
11
|
-
],
|
|
12
|
-
"env": {
|
|
13
|
-
"node": true
|
|
14
|
-
},
|
|
15
|
-
"parser": "@typescript-eslint/parser",
|
|
16
|
-
"parserOptions": {
|
|
17
|
-
"ecmaVersion": 2020,
|
|
18
|
-
"sourceType": "module"
|
|
19
|
-
},
|
|
20
|
-
"plugins": ["@typescript-eslint", "prettier", "node"],
|
|
21
|
-
"extends": ["plugin:@typescript-eslint/recommended", "prettier"],
|
|
22
|
-
"rules": {
|
|
23
|
-
"prettier/prettier": ["error", {
|
|
24
|
-
"arrowParens": "avoid",
|
|
25
|
-
"printWidth": 120
|
|
26
|
-
}],
|
|
27
|
-
"@typescript-eslint/no-unused-vars": [
|
|
28
|
-
"error",
|
|
29
|
-
{"varsIgnorePattern": "^_", "args": "all", "argsIgnorePattern": "^_"}
|
|
30
|
-
],
|
|
31
|
-
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
32
|
-
"@typescript-eslint/no-explicit-any": "off",
|
|
33
|
-
"@typescript-eslint/ban-ts-comment": "off",
|
|
34
|
-
"@typescript-eslint/no-var-requires": "off"
|
|
35
|
-
}
|
|
36
|
-
}
|