@applitools/eyes-webdriverio 5.38.1 → 5.39.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 CHANGED
@@ -10,6 +10,20 @@
10
10
 
11
11
 
12
12
 
13
+ ## 5.39.0 - 2022/12/21
14
+
15
+ ### Features
16
+ - Added `nmgOptions` to `CheckSettings`
17
+ ### Bug fixes
18
+ - Handle fake shadowRoot with UFG
19
+ - Handed error during polling in long requests to eyes server
20
+
21
+ ## 5.38.2 - 2022/12/1
22
+
23
+ ### Features
24
+ ### Bug fixes
25
+ - Fixed issue with element scroll position not being restored after screenshot is taken on native platforms
26
+
13
27
  ## 5.38.1 - 2022/11/29
14
28
 
15
29
  ### Features
package/README.md CHANGED
@@ -7,73 +7,77 @@
7
7
  </div>
8
8
  <br/>
9
9
 
10
- ## Table of contents
10
+ ### Table of contents
11
11
 
12
12
  - [Installation](#installation)
13
13
  - [Applitools API key](#applitools-api-key)
14
14
  - [Usage](#usage)
15
15
  - [Getting started with the API](#getting-started-with-the-api)
16
- * [Eyes constructor](#eyes-constructor)
17
- * [open](#open)
18
- + [Visual tests and baselines](#visual-tests-and-baselines)
19
- + [Batches](#batches)
20
- * [check](#check)
21
- + [Arguments to `eyes.check`](#arguments-to--eyescheck-)
22
- - [`tag`](#-tag-)
23
- - [`checkSettings`](#-checksettings-)
24
- * [Page screenshot](#page-screenshot)
25
- * [Region screenshot](#region-screenshot)
26
- * [Switching into frames](#switching-into-frames)
27
- * [Region in shadow DOM](#region-in-shadow-dom)
28
- * [Ignore Regions](#ignore-regions)
29
- * [Floating Regions](#floating-regions)
30
- * [Content/Strict/Layout Regions](#content-strict-layout-regions)
31
- * [Accessiblity Regions](#accessiblity-regions)
32
- * [Scroll root element](#scroll-root-element)
33
- * [Variation group ID](#variation-group-id)
34
- * [Lazy loading](#lazy-loading-lazyload)
35
- * [WebView](#webview-webview)
36
- * [Other checkSettings configuration](#other-checksettings-configuration)
37
- * [close](#close)
16
+ - [Eyes constructor](#eyes-constructor)
17
+ - [open](#open)
18
+ - [Visual tests and baselines](#visual-tests-and-baselines)
19
+ - [Batches](#batches)
20
+ - [check](#check)
21
+ - [Arguments to `eyes.check`](#arguments-to-eyescheck)
22
+ - [`tag`](#tag)
23
+ - [`checkSettings`](#checksettings)
24
+ - [Page screenshot](#page-screenshot)
25
+ - [Region screenshot](#region-screenshot)
26
+ - [Switching into frames](#switching-into-frames)
27
+ - [Region in shadow DOM](#region-in-shadow-dom)
28
+ - [Ignore Regions](#ignore-regions)
29
+ - [Floating Regions](#floating-regions)
30
+ - [Content/Strict/Layout Regions](#contentstrictlayout-regions)
31
+ - [Accessiblity Regions](#accessiblity-regions)
32
+ - [Scroll root element](#scroll-root-element)
33
+ - [Variation group ID](#variation-group-id)
34
+ - [Lazy loading (`lazyLoad`)](#lazy-loading-lazyload)
35
+ - [WebView (`webview`)](#webview-webview)
36
+ - [Other checkSettings configuration](#other-checksettings-configuration)
37
+ - [close](#close)
38
38
  - [Runners](#runners)
39
- * [Purpose of runners](#purpose-of-runners)
40
- + [1. Use the Ultrafast grid](#1-use-the-ultra-fast-grid)
41
- + [2. Manage tests across multiple `Eyes` instances](#2-manage-tests-across-multiple--eyes--instances)
39
+ - [Purpose of runners](#purpose-of-runners)
40
+ - [1. Use the Ultrafast grid](#1-use-the-ultrafast-grid)
41
+ - [2. Manage tests across multiple `Eyes` instances](#2-manage-tests-across-multiple-eyes-instances)
42
42
  - [Using the SDK as a service](#using-the-sdk-as-a-service)
43
- * [What is the service?](#what-is-the-service-)
44
- * [What is the difference from just using the SDK directly?](#what-is-the-difference-from-just-using-the-sdk-directly-)
45
- * [How to use the service](#how-to-use-the-service)
46
- * [Configure the service](#configure-the-service)
47
- + [Running with the Ultrafast grid](#running-with-the-ultra-fast-grid)
48
- + [Verbose logging](#verbose-logging)
49
- + [Override `testName` and `appName`](#override--testname--and--appname-)
50
- + [Batch completion notifications](#batch-completion-notifications)
51
- * [Using the service API](#using-the-service-api)
52
- + [`browser.eyesCheck(tag, checkSettings)`](#-browsereyescheck-tag--checksettings--)
53
- + [`browser.eyesGetTestResults()`](#-browsereyesgettestresults---)
54
- + [`browser.eyesSetScrollRootElement(selector)`](#-browsereyessetscrollrootelement-selector--)
55
- + [`browser.eyesSetConfiguration(configuration)`](#-browsereyessetconfiguration-configuration--)
56
- + [`browser.eyesGetConfiguration()`](#-browsereyesgetconfiguration---)
57
- + [`browser.eyesAddProperty(key, value)`](#-browsereyesaddproperty-key--value--)
58
- + [`browser.eyesClearProperties()`](#-browsereyesclearproperties---)
43
+ - [What is the service?](#what-is-the-service)
44
+ - [What is the difference from just using the SDK directly?](#what-is-the-difference-from-just-using-the-sdk-directly)
45
+ - [How to use the service](#how-to-use-the-service)
46
+ - [Configure the service](#configure-the-service)
47
+ - [Running with the Ultrafast grid](#running-with-the-ultrafast-grid)
48
+ - [Verbose logging](#verbose-logging)
49
+ - [Override `testName` and `appName`](#override-testname-and-appname)
50
+ - [Batch completion notifications](#batch-completion-notifications)
51
+ - [Using the service API](#using-the-service-api)
52
+ - [`browser.eyesCheck(tag, checkSettings)`](#browsereyeschecktag-checksettings)
53
+ - [`browser.eyesGetTestResults()`](#browsereyesgettestresults)
54
+ - [`browser.eyesSetScrollRootElement(selector)`](#browsereyessetscrollrootelementselector)
55
+ - [`browser.eyesSetConfiguration(configuration)`](#browsereyessetconfigurationconfiguration)
56
+ - [`browser.eyesGetConfiguration()`](#browsereyesgetconfiguration)
57
+ - [`browser.eyesAddProperty(key, value)`](#browsereyesaddpropertykey-value)
58
+ - [`browser.eyesClearProperties()`](#browsereyesclearproperties)
59
59
  - [Visual locators](#visual-locators)
60
60
  - [Recipes for common tasks](#recipes-for-common-tasks)
61
- * [Configure Server URL](#configure-server-url)
62
- * [Configure Proxy](#configure-proxy)
63
- * [Make every visual test correspond to a webdriver.io test](#make-every-visual-test-correspond-to-a-webdriverio-test)
64
- * [Organize tests in batches](#organize-tests-in-batches)
65
- + [Method 1: environment variable](#method-1--environment-variable)
66
- + [Method 2: `eyes.setBatch`](#method-2---eyessetbatch-)
67
- * [Stitch mode](#stitch-mode)
68
- + [Background information](#background-information)
69
- - [1. Stitch mode: Scroll](#1-stitch-mode--scroll)
70
- - [2. Stitch mode: CSS](#2-stitch-mode--css)
71
- * [Stitch overlap](#stitch-overlap)
72
- * [Match level](#match-level)
73
- * [Ignore displacements](#ignore-displacements)
74
- * [Test properties](#test-properties)
75
- * [Test results](#test-results)
76
- * [Logging](#logging)
61
+ - [Configure Server URL](#configure-server-url)
62
+ - [Configure Proxy](#configure-proxy)
63
+ - [Make every visual test correspond to a webdriver.io test](#make-every-visual-test-correspond-to-a-webdriverio-test)
64
+ - [Organize tests in batches](#organize-tests-in-batches)
65
+ - [Method 1: environment variable](#method-1-environment-variable)
66
+ - [Method 2: `eyes.setBatch`](#method-2-eyessetbatch)
67
+ - [Stitch mode](#stitch-mode)
68
+ - [Background information](#background-information)
69
+ - [1. Stitch mode: Scroll](#1-stitch-mode-scroll)
70
+ - [2. Stitch mode: CSS](#2-stitch-mode-css)
71
+ - [Stitch overlap](#stitch-overlap)
72
+ - [Match level](#match-level)
73
+ - [Ignore displacements](#ignore-displacements)
74
+ - [Test properties](#test-properties)
75
+ - [Test results](#test-results)
76
+ - [Logging](#logging)
77
+ - [Configuring browsers for the Ultrafast grid](#configuring-browsers-for-the-ultrafast-grid)
78
+ - [Desktop browsers](#desktop-browsers)
79
+ - [Chrome device emulation](#chrome-device-emulation)
80
+ - [iOS device](#ios-device)
77
81
 
78
82
  ## Installation
79
83
 
@@ -983,7 +987,7 @@ It's possible to provide additional information about each test in custom fields
983
987
  This is done by calling `setProperties` on the configuration, and providing it with an array of properties with the structure `{name, value}`. For example:
984
988
 
985
989
  ```js
986
- const {Eyes, Target} = require('@applitools/eyes-webdriverio')
990
+ const {Eyes} = require('@applitools/eyes-webdriverio')
987
991
 
988
992
  const eyes = new Eyes()
989
993
 
@@ -992,6 +996,21 @@ configuration.setProperties([{name: 'my custom property', value: 'some value'}])
992
996
  eyes.setConfiguration(configuration)
993
997
  ```
994
998
 
999
+ The test properties could also be specified per batch by calling `setProperties` on the batch info, and providing it with an array of properties with the structure `{name, value}`. For example:
1000
+
1001
+ ```js
1002
+ const {Eyes, BatchInfo} = require('@applitools/eyes-webdriverio')
1003
+
1004
+ const eyes = new Eyes()
1005
+
1006
+ const batch = new BatchInfo()
1007
+ batch.setProperties([{name: 'my custom batch property', value: 'some value'}])
1008
+
1009
+ const configuration = eyes.getConfiguration()
1010
+ configuration.setBatch(batch)
1011
+ eyes.setConfiguration(configuration)
1012
+ ```
1013
+
995
1014
  ### Test results
996
1015
 
997
1016
  The results of the test can be consumed as the return value from `eyes.close`. Here's an example for creating a formatted output string out of the `TestResults` object:
package/dist/api.js CHANGED
@@ -26,7 +26,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.closeBatch = exports.BatchClose = exports.Target = exports.CheckSettings = exports.Configuration = exports.Eyes = exports.By = void 0;
29
+ exports.closeBatch = exports.BatchClose = exports.Target = exports.CheckSettings = exports.CheckSettingsAutomation = exports.Configuration = exports.Eyes = exports.By = void 0;
30
30
  const core_1 = require("@applitools/core");
31
31
  const api = __importStar(require("@applitools/eyes-api"));
32
32
  const spec = __importStar(require("@applitools/spec-driver-webdriverio"));
@@ -45,10 +45,13 @@ class Configuration extends api.Configuration {
45
45
  }
46
46
  exports.Configuration = Configuration;
47
47
  Configuration._spec = sdk;
48
- class CheckSettings extends api.CheckSettingsAutomation {
48
+ class CheckSettingsAutomation extends api.CheckSettingsAutomation {
49
+ }
50
+ exports.CheckSettingsAutomation = CheckSettingsAutomation;
51
+ CheckSettingsAutomation._spec = sdk;
52
+ class CheckSettings extends CheckSettingsAutomation {
49
53
  }
50
54
  exports.CheckSettings = CheckSettings;
51
- CheckSettings._spec = sdk;
52
55
  exports.Target = { ...api.Target, spec: sdk };
53
56
  class BatchClose extends api.BatchClose {
54
57
  }
package/dist/service.js CHANGED
@@ -22,12 +22,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var _a;
25
26
  const core_1 = require("@applitools/core");
26
27
  const spec = __importStar(require("./spec-driver"));
27
28
  const api_1 = require("./api");
28
29
  if (!process.env.APPLITOOLS_WEBDRIVERIO_MAJOR_VERSION) {
29
30
  try {
30
- const { version } = require('webdriverio/package.json');
31
+ const version = (_a = process.env.APPLITOOLS_WEBDRIVERIO_VERSION) !== null && _a !== void 0 ? _a : require('webdriverio/package.json').version;
31
32
  const [major] = version.split('.', 1);
32
33
  process.env.APPLITOOLS_WEBDRIVERIO_MAJOR_VERSION = major;
33
34
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-webdriverio",
3
- "version": "5.38.1",
3
+ "version": "5.39.0",
4
4
  "description": "Applitools Eyes SDK for WebdriverIO",
5
5
  "keywords": [
6
6
  "eyes-webdriverio",
@@ -89,7 +89,7 @@
89
89
  ],
90
90
  "scripts": {
91
91
  "lint": "eslint '**/*.ts'",
92
- "build": "ttsc --project tsconfig$([ ! -z $APPLITOOLS_WEBDRIVERIO_MAJOR_VERSION ] && echo .v$APPLITOOLS_WEBDRIVERIO_MAJOR_VERSION).json",
92
+ "build": "ttsc --project tsconfig$([ ! -z $APPLITOOLS_WEBDRIVERIO_VERSION ] && echo .v${APPLITOOLS_WEBDRIVERIO_VERSION%%.*}).json",
93
93
  "generate:tests": "coverage-tests generate https://raw.githubusercontent.com/applitools/sdk.coverage.tests/universal-sdk/js/config.js --name 'eyes.webdriverio.javascript5'",
94
94
  "test": "yarn test:service && yarn test:coverage",
95
95
  "test:sanity": "echo 'create sanity suite'",
@@ -101,7 +101,7 @@
101
101
  "setup": "yarn docker:setup",
102
102
  "docker:setup": "node ../scripts/scripts/generate-docker-compose-config.js && docker-compose up -d",
103
103
  "docker:teardown": "docker-compose down",
104
- "upgrade:framework": "if [ ! -z $APPLITOOLS_WEBDRIVERIO_MAJOR_VERSION ]; then packagejson=`cat package.json`; yarn upgrade --no-lockfile webdriverio@$APPLITOOLS_WEBDRIVERIO_MAJOR_VERSION; echo \"$packagejson\" > package.json; fi",
104
+ "upgrade:framework": "if [ ! -z $APPLITOOLS_WEBDRIVERIO_VERSION ]; then packagejson=`cat package.json`; yarn upgrade --no-lockfile webdriverio@$APPLITOOLS_WEBDRIVERIO_VERSION; echo \"$packagejson\" > package.json; fi",
105
105
  "deps": "bongo deps",
106
106
  "gh:test": "gh workflow run test.yml --ref $(git rev-parse --abbrev-ref HEAD) -f packages='wdio wdio(node:14) wdio(node:12) wdio(protocol:cdp) wdio(framework:6) wdio(framework:5)'",
107
107
  "gh:test:links": "gh workflow run test.yml --ref $(git rev-parse --abbrev-ref HEAD) -f packages='wdio wdio+cdp wdio@6 wdio@5' -f links='types test-utils sdk-shared eyes-sdk-core visual-grid-client eyes-api spec-driver-webdriverio utils driver snippets screenshoter'",
@@ -116,17 +116,17 @@
116
116
  }
117
117
  },
118
118
  "dependencies": {
119
- "@applitools/core": "1.2.14",
120
- "@applitools/eyes-api": "1.10.6",
121
- "@applitools/spec-driver-webdriverio": "1.4.6"
119
+ "@applitools/core": "1.3.3",
120
+ "@applitools/eyes-api": "1.11.2",
121
+ "@applitools/spec-driver-webdriverio": "1.4.12"
122
122
  },
123
123
  "devDependencies": {
124
124
  "@applitools/api-extractor": "1.2.11",
125
125
  "@applitools/bongo": "^2.2.0",
126
126
  "@applitools/scripts": "1.2.0",
127
- "@applitools/sdk-coverage-tests": "^2.7.8",
127
+ "@applitools/sdk-coverage-tests": "^2.7.10",
128
128
  "@applitools/sdk-shared": "0.9.15",
129
- "@applitools/test-utils": "1.5.2",
129
+ "@applitools/test-utils": "1.5.4",
130
130
  "@types/mocha": "^9.1.1",
131
131
  "@types/node": "12",
132
132
  "@typescript-eslint/eslint-plugin": "^5.27.0",
package/types/index.d.ts CHANGED
@@ -36,7 +36,7 @@ export class Eyes {
36
36
  open(driver: Driver, appName?: string, testName?: string, viewportSize?: RectangleSizePlain, sessionType?: SessionTypePlain): Promise<Driver>;
37
37
  open(config?: ConfigurationPlain): Promise<void>;
38
38
  open(appName?: string, testName?: string, viewportSize?: RectangleSizePlain, sessionType?: SessionTypePlain): Promise<void>;
39
- check(name: string, checkSettings: CheckSettingsImage | CheckSettings): Promise<MatchResult>;
39
+ check(name: string, checkSettings: CheckSettingsImage | CheckSettingsAutomation): Promise<MatchResult>;
40
40
  check(target: {
41
41
  image: string | URL | Buffer;
42
42
  name?: string;
@@ -45,7 +45,7 @@ export class Eyes {
45
45
  locationInView?: LocationPlain;
46
46
  fullViewSize?: RectangleSizePlain;
47
47
  }, checkSettings?: CheckSettingsImagePlain): Promise<MatchResult>;
48
- check(checkSettings?: CheckSettingsPlain): Promise<MatchResult>;
48
+ check(checkSettings?: CheckSettingsAutomationPlain): Promise<MatchResult>;
49
49
  locate<TLocator extends string>(settings: VisualLocatorSettings<TLocator>): Promise<Record<TLocator, Array<RegionPlain>>>;
50
50
  extractTextRegions<TPattern extends string>(target: {
51
51
  image: string | URL | Buffer;
@@ -417,7 +417,7 @@ export class Configuration implements Required<ConfigurationPlain> {
417
417
  setDisableBrowserFetching(disableBrowserFetching: boolean): Configuration;
418
418
  }
419
419
  export type OCRRegion = { target: Element | RegionPlain | EyesSelector<Selector>; hint?: string; minMatch?: number; language?: string; };
420
- export type CheckSettingsPlain = CheckSettingsImagePlain & {
420
+ export type CheckSettingsAutomationPlain = CheckSettingsImagePlain & {
421
421
  frames?: Array<{ frame: number | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); scrollRootElement?: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }); } | (number | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))>;
422
422
  webview?: string | boolean;
423
423
  scrollRootElement?: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; });
@@ -425,13 +425,95 @@ export type CheckSettingsPlain = CheckSettingsImagePlain & {
425
425
  disableBrowserFetching?: boolean;
426
426
  layoutBreakpoints?: boolean | Array<number>;
427
427
  visualGridOptions?: { [key: string]: any; };
428
+ nmgOptions?: { [key: string]: any; };
428
429
  hooks?: { beforeCaptureScreenshot: string; };
429
430
  renderId?: string;
430
431
  timeout?: number;
431
432
  waitBeforeCapture?: number;
432
433
  lazyLoad?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; };
433
434
  };
434
- export class CheckSettings extends CheckSettings {
435
+ export class CheckSettingsAutomation {
436
+ constructor(settings?: CheckSettingsAutomation | CheckSettingsAutomationPlain, spec?: { isElement(value: any): value is Element; isSelector(value: any): value is Selector; });
437
+ region(region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))): CheckSettingsAutomation;
438
+ shadow(selector: string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }): CheckSettingsAutomation;
439
+ frame(context: { frame: number | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); scrollRootElement?: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }); }): CheckSettingsAutomation;
440
+ frame(frame: number | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })), scrollRootElement?: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })): CheckSettingsAutomation;
441
+ webview(webview?: string | boolean): CheckSettingsAutomation;
442
+ scrollRootElement(scrollRootElement: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })): CheckSettingsAutomation;
443
+ fully(fully?: boolean): CheckSettingsAutomation;
444
+ disableBrowserFetching(disableBrowserFetching: boolean): CheckSettingsAutomation;
445
+ layoutBreakpoints(layoutBreakpoints?: boolean | Array<number>): CheckSettingsAutomation;
446
+ hook(name: string, script: string): CheckSettingsAutomation;
447
+ beforeRenderScreenshotHook(script: string): CheckSettingsAutomation;
448
+ ufgOption(key: string, value: any): CheckSettingsAutomation;
449
+ ufgOptions(options: { [key: string]: any; }): CheckSettingsAutomation;
450
+ nmgOption(key: string, value: any): CheckSettingsAutomation;
451
+ nmgOptions(options: { [key: string]: any; }): CheckSettingsAutomation;
452
+ renderId(renderId: string): CheckSettingsAutomation;
453
+ timeout(timeout: number): CheckSettingsAutomation;
454
+ waitBeforeCapture(waitBeforeCapture: number): CheckSettingsAutomation;
455
+ lazyLoad(options?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; }): CheckSettingsAutomation;
456
+ name(name: string): CheckSettingsAutomation;
457
+ withName(name: string): CheckSettingsAutomation;
458
+ ignoreRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettingsAutomation;
459
+ ignoreRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettingsAutomation;
460
+ layoutRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettingsAutomation;
461
+ layoutRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettingsAutomation;
462
+ strictRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettingsAutomation;
463
+ strictRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettingsAutomation;
464
+ contentRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettingsAutomation;
465
+ contentRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettingsAutomation;
466
+ floatingRegion(region: {
467
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
468
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
469
+ regionId?: string;
470
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
471
+ }): CheckSettingsAutomation;
472
+ floatingRegion(region: {
473
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
474
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
475
+ regionId?: string;
476
+ maxUpOffset?: number;
477
+ maxDownOffset?: number;
478
+ maxLeftOffset?: number;
479
+ maxRightOffset?: number;
480
+ }): CheckSettingsAutomation;
481
+ floatingRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))), maxUpOffset?: number, maxDownOffset?: number, maxLeftOffset?: number, maxRightOffset?: number): CheckSettingsAutomation;
482
+ floatingRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
483
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
484
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
485
+ regionId?: string;
486
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
487
+ }>): CheckSettingsAutomation;
488
+ floatingRegions(maxOffset: number, ...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))>): CheckSettingsAutomation;
489
+ accessibilityRegion(region: {
490
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
491
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
492
+ regionId?: string;
493
+ type?: AccessibilityRegionTypePlain;
494
+ }): CheckSettingsAutomation;
495
+ accessibilityRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))), type?: AccessibilityRegionTypePlain): CheckSettingsAutomation;
496
+ accessibilityRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
497
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
498
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
499
+ regionId?: string;
500
+ type?: AccessibilityRegionTypePlain;
501
+ }>): CheckSettingsAutomation;
502
+ accessibilityRegions(type: AccessibilityRegionTypePlain, ...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))>): CheckSettingsAutomation;
503
+ matchLevel(matchLevel: MatchLevelPlain): CheckSettingsAutomation;
504
+ layout(): CheckSettingsAutomation;
505
+ exact(): CheckSettingsAutomation;
506
+ strict(): CheckSettingsAutomation;
507
+ ignoreColors(): CheckSettingsAutomation;
508
+ enablePatterns(enablePatterns?: boolean): CheckSettingsAutomation;
509
+ ignoreDisplacements(ignoreDisplacements?: boolean): CheckSettingsAutomation;
510
+ ignoreCaret(ignoreCaret?: boolean): CheckSettingsAutomation;
511
+ useDom(useDom?: boolean): CheckSettingsAutomation;
512
+ sendDom(sendDom?: boolean): CheckSettingsAutomation;
513
+ pageId(pageId: string): CheckSettingsAutomation;
514
+ variationGroupId(variationGroupId: string): CheckSettingsAutomation;
515
+ }
516
+ export class CheckSettings extends CheckSettingsAutomation {
435
517
  }
436
518
  export const Target: TargetImage & TargetAutomation<Element, Selector>;
437
519
  export class BatchClose {
@@ -853,89 +935,6 @@ export class CheckSettingsImage {
853
935
  pageId(pageId: string): CheckSettingsImage;
854
936
  variationGroupId(variationGroupId: string): CheckSettingsImage;
855
937
  }
856
- export type CheckSettingsAutomationPlain<TElement, TSelector> = CheckSettingsImagePlain & {
857
- frames?: Array<{ frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })); scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }); } | (number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })))>;
858
- webview?: string | boolean;
859
- scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; });
860
- fully?: boolean;
861
- disableBrowserFetching?: boolean;
862
- layoutBreakpoints?: boolean | Array<number>;
863
- visualGridOptions?: { [key: string]: any; };
864
- hooks?: { beforeCaptureScreenshot: string; };
865
- renderId?: string;
866
- timeout?: number;
867
- waitBeforeCapture?: number;
868
- lazyLoad?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; };
869
- };
870
- export class CheckSettingsAutomation<TElement = unknown, TSelector = unknown> {
871
- constructor(settings?: CheckSettings | CheckSettingsPlain, spec?: { isElement(value: any): value is TElement; isSelector(value: any): value is TSelector; });
872
- region(region: RegionPlain | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }))): CheckSettings;
873
- shadow(selector: string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }): CheckSettings;
874
- frame(context: { frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })); scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }); }): CheckSettings;
875
- frame(frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })), scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })): CheckSettings;
876
- webview(webview?: string | boolean): CheckSettings;
877
- scrollRootElement(scrollRootElement: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })): CheckSettings;
878
- fully(fully?: boolean): CheckSettings;
879
- disableBrowserFetching(disableBrowserFetching: boolean): CheckSettings;
880
- layoutBreakpoints(layoutBreakpoints?: boolean | Array<number>): CheckSettings;
881
- hook(name: string, script: string): CheckSettings;
882
- beforeRenderScreenshotHook(script: string): CheckSettings;
883
- ufgOption(key: string, value: any): CheckSettings;
884
- ufgOptions(options: { [key: string]: any; }): CheckSettings;
885
- renderId(renderId: string): CheckSettings;
886
- timeout(timeout: number): CheckSettings;
887
- waitBeforeCapture(waitBeforeCapture: number): CheckSettings;
888
- lazyLoad(options?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; }): CheckSettings;
889
- name(name: string): CheckSettings;
890
- withName(name: string): CheckSettings;
891
- ignoreRegion(region: any): CheckSettings;
892
- ignoreRegions(...regions: Array<any>): CheckSettings;
893
- layoutRegion(region: any): CheckSettings;
894
- layoutRegions(...regions: Array<any>): CheckSettings;
895
- strictRegion(region: any): CheckSettings;
896
- strictRegions(...regions: Array<any>): CheckSettings;
897
- contentRegion(region: any): CheckSettings;
898
- contentRegions(...regions: Array<any>): CheckSettings;
899
- floatingRegion(region: {
900
- region: any;
901
- padding?: number | { top: number; bottom: number; let: number; right: number; };
902
- regionId?: string;
903
- offset?: { top?: number; bottom?: number; left?: number; right?: number; };
904
- }): CheckSettings;
905
- floatingRegion(region: {
906
- region: any;
907
- padding?: number | { top: number; bottom: number; let: number; right: number; };
908
- regionId?: string;
909
- maxUpOffset?: number;
910
- maxDownOffset?: number;
911
- maxLeftOffset?: number;
912
- maxRightOffset?: number;
913
- }): CheckSettings;
914
- floatingRegion(region: any, maxUpOffset?: number, maxDownOffset?: number, maxLeftOffset?: number, maxRightOffset?: number): CheckSettings;
915
- floatingRegions(...regions: Array<any>): CheckSettings;
916
- floatingRegions(maxOffset: number, ...regions: Array<any>): CheckSettings;
917
- accessibilityRegion(region: {
918
- region: any;
919
- padding?: number | { top: number; bottom: number; let: number; right: number; };
920
- regionId?: string;
921
- type?: AccessibilityRegionTypePlain;
922
- }): CheckSettings;
923
- accessibilityRegion(region: any, type?: AccessibilityRegionTypePlain): CheckSettings;
924
- accessibilityRegions(...regions: Array<any>): CheckSettings;
925
- accessibilityRegions(type: AccessibilityRegionTypePlain, ...regions: Array<any>): CheckSettings;
926
- matchLevel(matchLevel: MatchLevelPlain): CheckSettings;
927
- layout(): CheckSettings;
928
- exact(): CheckSettings;
929
- strict(): CheckSettings;
930
- ignoreColors(): CheckSettings;
931
- enablePatterns(enablePatterns?: boolean): CheckSettings;
932
- ignoreDisplacements(ignoreDisplacements?: boolean): CheckSettings;
933
- ignoreCaret(ignoreCaret?: boolean): CheckSettings;
934
- useDom(useDom?: boolean): CheckSettings;
935
- sendDom(sendDom?: boolean): CheckSettings;
936
- pageId(pageId: string): CheckSettings;
937
- variationGroupId(variationGroupId: string): CheckSettings;
938
- }
939
938
  export type TargetImage = {
940
939
  image(image: string | URL | Buffer): CheckSettingsImage;
941
940
  buffer(imageBuffer: Buffer): CheckSettingsImage;
@@ -944,12 +943,12 @@ export type TargetImage = {
944
943
  url(imageUrl: string | URL): CheckSettingsImage;
945
944
  };
946
945
  export type TargetAutomation<TElement, TSelector> = {
947
- window(): CheckSettings;
948
- region(region: LegacyRegionPlain | (RegionPlain | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })))): CheckSettings;
949
- frame(context: { frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })); scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }); }): CheckSettings;
950
- frame(frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })), scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })): CheckSettings;
951
- shadow(selector: string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }): CheckSettings;
952
- webview(webview?: string | boolean): CheckSettings;
946
+ window(): CheckSettingsAutomation;
947
+ region(region: LegacyRegionPlain | (RegionPlain | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })))): CheckSettingsAutomation;
948
+ frame(context: { frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })); scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }); }): CheckSettingsAutomation;
949
+ frame(frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })), scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })): CheckSettingsAutomation;
950
+ shadow(selector: string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }): CheckSettingsAutomation;
951
+ webview(webview?: string | boolean): CheckSettingsAutomation;
953
952
  };
954
953
  export type CutProviderPlain = { top: number; right: number; bottom: number; left: number; } | { x: number; y: number; width: number; height: number; };
955
954
  export class CutProvider implements Required<{