@applitools/driver 1.4.17-beta.2 → 1.5.2
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 +238 -225
- package/LICENSE +25 -25
- package/README.md +449 -449
- package/dist/capabilities.js +58 -58
- package/dist/context.js +499 -493
- package/dist/debug/check-spec-driver.js +167 -167
- package/dist/debug/index.js +13 -13
- package/dist/driver.js +519 -519
- package/dist/element.js +483 -483
- package/dist/fake/index.js +25 -25
- package/dist/fake/mock-driver.js +347 -344
- package/dist/fake/spec-driver.js +108 -108
- package/dist/helper-android.js +68 -68
- package/dist/helper-ios.js +39 -39
- package/dist/index.js +15 -15
- package/dist/spec-utils.js +77 -77
- package/dist/user-agent.js +113 -113
- package/package.json +100 -100
- package/types/capabilities.d.ts +4 -4
- package/types/context.d.ts +76 -76
- package/types/debug/check-spec-driver.d.ts +20 -20
- package/types/debug/index.d.ts +1 -1
- package/types/driver.d.ts +67 -67
- package/types/element.d.ts +56 -56
- package/types/fake/index.d.ts +3 -3
- package/types/fake/mock-driver.d.ts +35 -35
- package/types/fake/spec-driver.d.ts +30 -30
- package/types/helper-android.d.ts +23 -23
- package/types/helper-ios.d.ts +21 -21
- package/types/index.d.ts +3 -3
- package/types/spec-utils.d.ts +13 -13
- package/types/user-agent.d.ts +12 -12
- package/dist/utils.js +0 -82
- package/types/utils.d.ts +0 -11
package/dist/fake/spec-driver.js
CHANGED
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.visit = exports.getTitle = exports.getUrl = exports.getOrientation = exports.setWindowSize = exports.getWindowSize = exports.getDriverInfo = exports.takeScreenshot = exports.childContext = exports.parentContext = exports.mainContext = exports.findElements = exports.findElement = exports.executeScript = exports.isEqualElements = exports.isStaleElementError = exports.transformSelector = exports.isSelector = exports.isElement = exports.isDriver = void 0;
|
|
23
|
-
const utils = __importStar(require("@applitools/utils"));
|
|
24
|
-
function isDriver(driver) {
|
|
25
|
-
return driver && driver.constructor.name === 'MockDriver';
|
|
26
|
-
}
|
|
27
|
-
exports.isDriver = isDriver;
|
|
28
|
-
function isElement(element) {
|
|
29
|
-
return utils.types.has(element, 'id');
|
|
30
|
-
}
|
|
31
|
-
exports.isElement = isElement;
|
|
32
|
-
function isSelector(selector) {
|
|
33
|
-
return utils.types.isString(selector) || utils.types.has(selector, ['using', 'value']);
|
|
34
|
-
}
|
|
35
|
-
exports.isSelector = isSelector;
|
|
36
|
-
function transformSelector(selector) {
|
|
37
|
-
return utils.types.has(selector, 'selector') ? selector.selector : selector;
|
|
38
|
-
}
|
|
39
|
-
exports.transformSelector = transformSelector;
|
|
40
|
-
function isStaleElementError() {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
exports.isStaleElementError = isStaleElementError;
|
|
44
|
-
async function isEqualElements(_driver, element1, element2) {
|
|
45
|
-
return element1.id === element2.id;
|
|
46
|
-
}
|
|
47
|
-
exports.isEqualElements = isEqualElements;
|
|
48
|
-
async function executeScript(driver, script, arg) {
|
|
49
|
-
return driver.executeScript(script, [arg]);
|
|
50
|
-
}
|
|
51
|
-
exports.executeScript = executeScript;
|
|
52
|
-
async function findElement(driver, selector, parent) {
|
|
53
|
-
return driver.findElement(selector, parent);
|
|
54
|
-
}
|
|
55
|
-
exports.findElement = findElement;
|
|
56
|
-
async function findElements(driver, selector, parent) {
|
|
57
|
-
return driver.findElements(selector, parent);
|
|
58
|
-
}
|
|
59
|
-
exports.findElements = findElements;
|
|
60
|
-
async function mainContext(driver) {
|
|
61
|
-
return driver.switchToFrame(null);
|
|
62
|
-
}
|
|
63
|
-
exports.mainContext = mainContext;
|
|
64
|
-
async function parentContext(driver) {
|
|
65
|
-
return driver.switchToParentFrame();
|
|
66
|
-
}
|
|
67
|
-
exports.parentContext = parentContext;
|
|
68
|
-
async function childContext(driver, element) {
|
|
69
|
-
return driver.switchToFrame(element);
|
|
70
|
-
}
|
|
71
|
-
exports.childContext = childContext;
|
|
72
|
-
async function takeScreenshot(driver) {
|
|
73
|
-
return driver.takeScreenshot();
|
|
74
|
-
}
|
|
75
|
-
exports.takeScreenshot = takeScreenshot;
|
|
76
|
-
async function getDriverInfo(driver) {
|
|
77
|
-
return driver.info;
|
|
78
|
-
}
|
|
79
|
-
exports.getDriverInfo = getDriverInfo;
|
|
80
|
-
async function getWindowSize(driver) {
|
|
81
|
-
const rect = await driver.getWindowRect();
|
|
82
|
-
return rect;
|
|
83
|
-
}
|
|
84
|
-
exports.getWindowSize = getWindowSize;
|
|
85
|
-
async function setWindowSize(driver, size) {
|
|
86
|
-
await driver.setWindowRect(size);
|
|
87
|
-
}
|
|
88
|
-
exports.setWindowSize = setWindowSize;
|
|
89
|
-
async function getOrientation(_driver) {
|
|
90
|
-
return 'portrait';
|
|
91
|
-
}
|
|
92
|
-
exports.getOrientation = getOrientation;
|
|
93
|
-
async function getUrl(driver) {
|
|
94
|
-
if (this._isNative)
|
|
95
|
-
return null;
|
|
96
|
-
return driver.getUrl();
|
|
97
|
-
}
|
|
98
|
-
exports.getUrl = getUrl;
|
|
99
|
-
async function getTitle(driver) {
|
|
100
|
-
if (this._isNative)
|
|
101
|
-
return null;
|
|
102
|
-
return driver.getTitle();
|
|
103
|
-
}
|
|
104
|
-
exports.getTitle = getTitle;
|
|
105
|
-
async function visit(driver, url) {
|
|
106
|
-
await driver.visit(url);
|
|
107
|
-
}
|
|
108
|
-
exports.visit = visit;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.visit = exports.getTitle = exports.getUrl = exports.getOrientation = exports.setWindowSize = exports.getWindowSize = exports.getDriverInfo = exports.takeScreenshot = exports.childContext = exports.parentContext = exports.mainContext = exports.findElements = exports.findElement = exports.executeScript = exports.isEqualElements = exports.isStaleElementError = exports.transformSelector = exports.isSelector = exports.isElement = exports.isDriver = void 0;
|
|
23
|
+
const utils = __importStar(require("@applitools/utils"));
|
|
24
|
+
function isDriver(driver) {
|
|
25
|
+
return driver && driver.constructor.name === 'MockDriver';
|
|
26
|
+
}
|
|
27
|
+
exports.isDriver = isDriver;
|
|
28
|
+
function isElement(element) {
|
|
29
|
+
return utils.types.has(element, 'id');
|
|
30
|
+
}
|
|
31
|
+
exports.isElement = isElement;
|
|
32
|
+
function isSelector(selector) {
|
|
33
|
+
return utils.types.isString(selector) || utils.types.has(selector, ['using', 'value']);
|
|
34
|
+
}
|
|
35
|
+
exports.isSelector = isSelector;
|
|
36
|
+
function transformSelector(selector) {
|
|
37
|
+
return utils.types.has(selector, 'selector') ? selector.selector : selector;
|
|
38
|
+
}
|
|
39
|
+
exports.transformSelector = transformSelector;
|
|
40
|
+
function isStaleElementError() {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
exports.isStaleElementError = isStaleElementError;
|
|
44
|
+
async function isEqualElements(_driver, element1, element2) {
|
|
45
|
+
return element1.id === element2.id;
|
|
46
|
+
}
|
|
47
|
+
exports.isEqualElements = isEqualElements;
|
|
48
|
+
async function executeScript(driver, script, arg) {
|
|
49
|
+
return driver.executeScript(script, [arg]);
|
|
50
|
+
}
|
|
51
|
+
exports.executeScript = executeScript;
|
|
52
|
+
async function findElement(driver, selector, parent) {
|
|
53
|
+
return driver.findElement(selector, parent);
|
|
54
|
+
}
|
|
55
|
+
exports.findElement = findElement;
|
|
56
|
+
async function findElements(driver, selector, parent) {
|
|
57
|
+
return driver.findElements(selector, parent);
|
|
58
|
+
}
|
|
59
|
+
exports.findElements = findElements;
|
|
60
|
+
async function mainContext(driver) {
|
|
61
|
+
return driver.switchToFrame(null);
|
|
62
|
+
}
|
|
63
|
+
exports.mainContext = mainContext;
|
|
64
|
+
async function parentContext(driver) {
|
|
65
|
+
return driver.switchToParentFrame();
|
|
66
|
+
}
|
|
67
|
+
exports.parentContext = parentContext;
|
|
68
|
+
async function childContext(driver, element) {
|
|
69
|
+
return driver.switchToFrame(element);
|
|
70
|
+
}
|
|
71
|
+
exports.childContext = childContext;
|
|
72
|
+
async function takeScreenshot(driver) {
|
|
73
|
+
return driver.takeScreenshot();
|
|
74
|
+
}
|
|
75
|
+
exports.takeScreenshot = takeScreenshot;
|
|
76
|
+
async function getDriverInfo(driver) {
|
|
77
|
+
return driver.info;
|
|
78
|
+
}
|
|
79
|
+
exports.getDriverInfo = getDriverInfo;
|
|
80
|
+
async function getWindowSize(driver) {
|
|
81
|
+
const rect = await driver.getWindowRect();
|
|
82
|
+
return rect;
|
|
83
|
+
}
|
|
84
|
+
exports.getWindowSize = getWindowSize;
|
|
85
|
+
async function setWindowSize(driver, size) {
|
|
86
|
+
await driver.setWindowRect(size);
|
|
87
|
+
}
|
|
88
|
+
exports.setWindowSize = setWindowSize;
|
|
89
|
+
async function getOrientation(_driver) {
|
|
90
|
+
return 'portrait';
|
|
91
|
+
}
|
|
92
|
+
exports.getOrientation = getOrientation;
|
|
93
|
+
async function getUrl(driver) {
|
|
94
|
+
if (this._isNative)
|
|
95
|
+
return null;
|
|
96
|
+
return driver.getUrl();
|
|
97
|
+
}
|
|
98
|
+
exports.getUrl = getUrl;
|
|
99
|
+
async function getTitle(driver) {
|
|
100
|
+
if (this._isNative)
|
|
101
|
+
return null;
|
|
102
|
+
return driver.getTitle();
|
|
103
|
+
}
|
|
104
|
+
exports.getTitle = getTitle;
|
|
105
|
+
async function visit(driver, url) {
|
|
106
|
+
await driver.visit(url);
|
|
107
|
+
}
|
|
108
|
+
exports.visit = visit;
|
package/dist/helper-android.js
CHANGED
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HelperAndroid = void 0;
|
|
4
|
-
class HelperAndroid {
|
|
5
|
-
constructor(options) {
|
|
6
|
-
this._spec = options.spec;
|
|
7
|
-
this._element = options.element;
|
|
8
|
-
this._legacy = options.legacy;
|
|
9
|
-
this._logger = options.logger;
|
|
10
|
-
}
|
|
11
|
-
static async make(options) {
|
|
12
|
-
const { spec, driver, logger } = options;
|
|
13
|
-
let legacy = false;
|
|
14
|
-
let element = await driver.element({
|
|
15
|
-
type: 'xpath',
|
|
16
|
-
selector: '//*[@content-desc="EyesAppiumHelperEDT"]',
|
|
17
|
-
});
|
|
18
|
-
if (!element) {
|
|
19
|
-
legacy = true;
|
|
20
|
-
element = await driver.element({
|
|
21
|
-
type: '-android uiautomator',
|
|
22
|
-
selector: 'new UiSelector().description("EyesAppiumHelper")',
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
return element ? new HelperAndroid({ spec, element, legacy, logger }) : null;
|
|
26
|
-
}
|
|
27
|
-
async _getElementId(element) {
|
|
28
|
-
const resourceId = await element.getAttribute('resource-id');
|
|
29
|
-
if (!resourceId)
|
|
30
|
-
return null;
|
|
31
|
-
return resourceId.split('/')[1];
|
|
32
|
-
}
|
|
33
|
-
async getContentSize(element) {
|
|
34
|
-
let contentHeight;
|
|
35
|
-
if (this._legacy) {
|
|
36
|
-
await this._element.click();
|
|
37
|
-
contentHeight = await this._element.getText();
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
const elementId = await this._getElementId(element);
|
|
41
|
-
if (!elementId)
|
|
42
|
-
return null;
|
|
43
|
-
await this._element.type(`offset;${elementId};0;0;0`);
|
|
44
|
-
await this._element.click();
|
|
45
|
-
contentHeight = await this._element.getText();
|
|
46
|
-
await this._element.type('');
|
|
47
|
-
}
|
|
48
|
-
const region = await this._spec.getElementRegion(this._element.driver.target, element.target);
|
|
49
|
-
return { width: region.width, height: Number(contentHeight) };
|
|
50
|
-
}
|
|
51
|
-
async getRegion(element) {
|
|
52
|
-
if (this._legacy)
|
|
53
|
-
return null;
|
|
54
|
-
const elementId = await this._getElementId(element);
|
|
55
|
-
if (!elementId)
|
|
56
|
-
return null;
|
|
57
|
-
await this._element.type(`getRect;${elementId};0;0`);
|
|
58
|
-
await this._element.click();
|
|
59
|
-
const regionString = await this._element.getText();
|
|
60
|
-
await this._element.type('');
|
|
61
|
-
const [, x, y, height, width] = regionString.match(/\[(-?\d+(?:\.\d+)?);(-?\d+(?:\.\d+)?);(-?\d+(?:\.\d+)?);(-?\d+(?:\.\d+)?)\]/);
|
|
62
|
-
const region = { x: Number(x), y: Number(y), width: Number(width), height: Number(height) };
|
|
63
|
-
if (Number.isNaN(region.x + region.y + region.width + region.height))
|
|
64
|
-
return null;
|
|
65
|
-
return region;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exports.HelperAndroid = HelperAndroid;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HelperAndroid = void 0;
|
|
4
|
+
class HelperAndroid {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this._spec = options.spec;
|
|
7
|
+
this._element = options.element;
|
|
8
|
+
this._legacy = options.legacy;
|
|
9
|
+
this._logger = options.logger;
|
|
10
|
+
}
|
|
11
|
+
static async make(options) {
|
|
12
|
+
const { spec, driver, logger } = options;
|
|
13
|
+
let legacy = false;
|
|
14
|
+
let element = await driver.element({
|
|
15
|
+
type: 'xpath',
|
|
16
|
+
selector: '//*[@content-desc="EyesAppiumHelperEDT"]',
|
|
17
|
+
});
|
|
18
|
+
if (!element) {
|
|
19
|
+
legacy = true;
|
|
20
|
+
element = await driver.element({
|
|
21
|
+
type: '-android uiautomator',
|
|
22
|
+
selector: 'new UiSelector().description("EyesAppiumHelper")',
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return element ? new HelperAndroid({ spec, element, legacy, logger }) : null;
|
|
26
|
+
}
|
|
27
|
+
async _getElementId(element) {
|
|
28
|
+
const resourceId = await element.getAttribute('resource-id');
|
|
29
|
+
if (!resourceId)
|
|
30
|
+
return null;
|
|
31
|
+
return resourceId.split('/')[1];
|
|
32
|
+
}
|
|
33
|
+
async getContentSize(element) {
|
|
34
|
+
let contentHeight;
|
|
35
|
+
if (this._legacy) {
|
|
36
|
+
await this._element.click();
|
|
37
|
+
contentHeight = await this._element.getText();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
const elementId = await this._getElementId(element);
|
|
41
|
+
if (!elementId)
|
|
42
|
+
return null;
|
|
43
|
+
await this._element.type(`offset;${elementId};0;0;0`);
|
|
44
|
+
await this._element.click();
|
|
45
|
+
contentHeight = await this._element.getText();
|
|
46
|
+
await this._element.type('');
|
|
47
|
+
}
|
|
48
|
+
const region = await this._spec.getElementRegion(this._element.driver.target, element.target);
|
|
49
|
+
return { width: region.width, height: Number(contentHeight) };
|
|
50
|
+
}
|
|
51
|
+
async getRegion(element) {
|
|
52
|
+
if (this._legacy)
|
|
53
|
+
return null;
|
|
54
|
+
const elementId = await this._getElementId(element);
|
|
55
|
+
if (!elementId)
|
|
56
|
+
return null;
|
|
57
|
+
await this._element.type(`getRect;${elementId};0;0`);
|
|
58
|
+
await this._element.click();
|
|
59
|
+
const regionString = await this._element.getText();
|
|
60
|
+
await this._element.type('');
|
|
61
|
+
const [, x, y, height, width] = regionString.match(/\[(-?\d+(?:\.\d+)?);(-?\d+(?:\.\d+)?);(-?\d+(?:\.\d+)?);(-?\d+(?:\.\d+)?)\]/);
|
|
62
|
+
const region = { x: Number(x), y: Number(y), width: Number(width), height: Number(height) };
|
|
63
|
+
if (Number.isNaN(region.x + region.y + region.width + region.height))
|
|
64
|
+
return null;
|
|
65
|
+
return region;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.HelperAndroid = HelperAndroid;
|
package/dist/helper-ios.js
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HelperIOS = void 0;
|
|
4
|
-
class HelperIOS {
|
|
5
|
-
constructor(options) {
|
|
6
|
-
this._driver = options.driver;
|
|
7
|
-
this._element = options.element;
|
|
8
|
-
this._spec = options.spec;
|
|
9
|
-
this._logger = options.logger;
|
|
10
|
-
}
|
|
11
|
-
static async make(options) {
|
|
12
|
-
const { spec, driver, logger } = options;
|
|
13
|
-
const element = await driver.element({ type: 'name', selector: 'applitools_grab_scrollable_data_button' });
|
|
14
|
-
return element ? new HelperIOS({ driver, element, spec, logger }) : null;
|
|
15
|
-
}
|
|
16
|
-
async getContentSize(_element) {
|
|
17
|
-
await this._element.click();
|
|
18
|
-
const sizeLabel = await this._driver.element({ type: 'name', selector: 'applitools_content_size_label' });
|
|
19
|
-
const sizeString = await (sizeLabel === null || sizeLabel === void 0 ? void 0 : sizeLabel.getText());
|
|
20
|
-
if (!sizeString)
|
|
21
|
-
return null;
|
|
22
|
-
const [, width, height] = sizeString.match(/\{(-?\d+(?:\.\d+)?),\s?(-?\d+(?:\.\d+)?)\}/);
|
|
23
|
-
const contentSize = { width: Number(width), height: Number(height) };
|
|
24
|
-
if (Number.isNaN(contentSize.width + contentSize.height))
|
|
25
|
-
return null;
|
|
26
|
-
const paddingLabel = await this._driver.element({ type: 'name', selector: 'applitools_content_offset_label' });
|
|
27
|
-
const paddingString = await (paddingLabel === null || paddingLabel === void 0 ? void 0 : paddingLabel.getText());
|
|
28
|
-
if (!paddingString)
|
|
29
|
-
return contentSize;
|
|
30
|
-
const [, x, y] = paddingString.match(/\{(-?\d+(?:\.\d+)?),\s?(-?\d+(?:\.\d+)?)\}/);
|
|
31
|
-
const contentOffset = { x: Number(x), y: Number(y) };
|
|
32
|
-
if (!Number.isNaN(contentOffset.x))
|
|
33
|
-
contentSize.width -= contentOffset.x;
|
|
34
|
-
if (!Number.isNaN(contentOffset.y))
|
|
35
|
-
contentSize.height -= contentOffset.y;
|
|
36
|
-
return contentSize;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.HelperIOS = HelperIOS;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HelperIOS = void 0;
|
|
4
|
+
class HelperIOS {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this._driver = options.driver;
|
|
7
|
+
this._element = options.element;
|
|
8
|
+
this._spec = options.spec;
|
|
9
|
+
this._logger = options.logger;
|
|
10
|
+
}
|
|
11
|
+
static async make(options) {
|
|
12
|
+
const { spec, driver, logger } = options;
|
|
13
|
+
const element = await driver.element({ type: 'name', selector: 'applitools_grab_scrollable_data_button' });
|
|
14
|
+
return element ? new HelperIOS({ driver, element, spec, logger }) : null;
|
|
15
|
+
}
|
|
16
|
+
async getContentSize(_element) {
|
|
17
|
+
await this._element.click();
|
|
18
|
+
const sizeLabel = await this._driver.element({ type: 'name', selector: 'applitools_content_size_label' });
|
|
19
|
+
const sizeString = await (sizeLabel === null || sizeLabel === void 0 ? void 0 : sizeLabel.getText());
|
|
20
|
+
if (!sizeString)
|
|
21
|
+
return null;
|
|
22
|
+
const [, width, height] = sizeString.match(/\{(-?\d+(?:\.\d+)?),\s?(-?\d+(?:\.\d+)?)\}/);
|
|
23
|
+
const contentSize = { width: Number(width), height: Number(height) };
|
|
24
|
+
if (Number.isNaN(contentSize.width + contentSize.height))
|
|
25
|
+
return null;
|
|
26
|
+
const paddingLabel = await this._driver.element({ type: 'name', selector: 'applitools_content_offset_label' });
|
|
27
|
+
const paddingString = await (paddingLabel === null || paddingLabel === void 0 ? void 0 : paddingLabel.getText());
|
|
28
|
+
if (!paddingString)
|
|
29
|
+
return contentSize;
|
|
30
|
+
const [, x, y] = paddingString.match(/\{(-?\d+(?:\.\d+)?),\s?(-?\d+(?:\.\d+)?)\}/);
|
|
31
|
+
const contentOffset = { x: Number(x), y: Number(y) };
|
|
32
|
+
if (!Number.isNaN(contentOffset.x))
|
|
33
|
+
contentSize.width -= contentOffset.x;
|
|
34
|
+
if (!Number.isNaN(contentOffset.y))
|
|
35
|
+
contentSize.height -= contentOffset.y;
|
|
36
|
+
return contentSize;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.HelperIOS = HelperIOS;
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./driver"), exports);
|
|
14
|
-
__exportStar(require("./context"), exports);
|
|
15
|
-
__exportStar(require("./element"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./driver"), exports);
|
|
14
|
+
__exportStar(require("./context"), exports);
|
|
15
|
+
__exportStar(require("./element"), exports);
|
package/dist/spec-utils.js
CHANGED
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.splitSelector = exports.transformSelector = exports.isSelector = exports.isCommonSelector = void 0;
|
|
23
|
-
const utils = __importStar(require("@applitools/utils"));
|
|
24
|
-
function isCommonSelector(spec, selector) {
|
|
25
|
-
return (utils.types.isPlainObject(selector) &&
|
|
26
|
-
utils.types.has(selector, 'selector') &&
|
|
27
|
-
(utils.types.isString(selector.selector) || spec.isSelector(selector.selector)));
|
|
28
|
-
}
|
|
29
|
-
exports.isCommonSelector = isCommonSelector;
|
|
30
|
-
function isSelector(spec, selector) {
|
|
31
|
-
return spec.isSelector(selector) || utils.types.isString(selector) || isCommonSelector(spec, selector);
|
|
32
|
-
}
|
|
33
|
-
exports.isSelector = isSelector;
|
|
34
|
-
function transformSelector(spec, selector, environment) {
|
|
35
|
-
var _a, _b;
|
|
36
|
-
if ((environment === null || environment === void 0 ? void 0 : environment.isWeb) && isCommonSelector(spec, selector)) {
|
|
37
|
-
if (selector.type === 'id')
|
|
38
|
-
selector = { type: 'css', selector: `#${selector.selector}` };
|
|
39
|
-
if (selector.type === 'name')
|
|
40
|
-
selector = { type: 'css', selector: `[name="${selector.selector}"]` };
|
|
41
|
-
if (selector.type === 'class name')
|
|
42
|
-
selector = { type: 'css', selector: `.${selector.selector}` };
|
|
43
|
-
}
|
|
44
|
-
return (_b = (_a = spec.transformSelector) === null || _a === void 0 ? void 0 : _a.call(spec, selector)) !== null && _b !== void 0 ? _b : selector;
|
|
45
|
-
}
|
|
46
|
-
exports.transformSelector = transformSelector;
|
|
47
|
-
function splitSelector(spec, selector) {
|
|
48
|
-
let targetSelector = selector;
|
|
49
|
-
let activeSelector = {};
|
|
50
|
-
let elementSelector = activeSelector;
|
|
51
|
-
const contextSelectors = [];
|
|
52
|
-
while (targetSelector) {
|
|
53
|
-
if (isCommonSelector(spec, targetSelector)) {
|
|
54
|
-
activeSelector.selector = targetSelector.selector;
|
|
55
|
-
if (targetSelector.type)
|
|
56
|
-
activeSelector.type = targetSelector.type;
|
|
57
|
-
if (targetSelector.shadow) {
|
|
58
|
-
activeSelector = activeSelector.shadow = {};
|
|
59
|
-
targetSelector = targetSelector.shadow;
|
|
60
|
-
}
|
|
61
|
-
else if (targetSelector.frame) {
|
|
62
|
-
contextSelectors.push(elementSelector);
|
|
63
|
-
elementSelector = activeSelector = {};
|
|
64
|
-
targetSelector = targetSelector.frame;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
targetSelector = null;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
activeSelector.selector = targetSelector;
|
|
72
|
-
targetSelector = null;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return { contextSelectors, elementSelector };
|
|
76
|
-
}
|
|
77
|
-
exports.splitSelector = splitSelector;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.splitSelector = exports.transformSelector = exports.isSelector = exports.isCommonSelector = void 0;
|
|
23
|
+
const utils = __importStar(require("@applitools/utils"));
|
|
24
|
+
function isCommonSelector(spec, selector) {
|
|
25
|
+
return (utils.types.isPlainObject(selector) &&
|
|
26
|
+
utils.types.has(selector, 'selector') &&
|
|
27
|
+
(utils.types.isString(selector.selector) || spec.isSelector(selector.selector)));
|
|
28
|
+
}
|
|
29
|
+
exports.isCommonSelector = isCommonSelector;
|
|
30
|
+
function isSelector(spec, selector) {
|
|
31
|
+
return spec.isSelector(selector) || utils.types.isString(selector) || isCommonSelector(spec, selector);
|
|
32
|
+
}
|
|
33
|
+
exports.isSelector = isSelector;
|
|
34
|
+
function transformSelector(spec, selector, environment) {
|
|
35
|
+
var _a, _b;
|
|
36
|
+
if ((environment === null || environment === void 0 ? void 0 : environment.isWeb) && isCommonSelector(spec, selector)) {
|
|
37
|
+
if (selector.type === 'id')
|
|
38
|
+
selector = { type: 'css', selector: `#${selector.selector}` };
|
|
39
|
+
if (selector.type === 'name')
|
|
40
|
+
selector = { type: 'css', selector: `[name="${selector.selector}"]` };
|
|
41
|
+
if (selector.type === 'class name')
|
|
42
|
+
selector = { type: 'css', selector: `.${selector.selector}` };
|
|
43
|
+
}
|
|
44
|
+
return (_b = (_a = spec.transformSelector) === null || _a === void 0 ? void 0 : _a.call(spec, selector)) !== null && _b !== void 0 ? _b : selector;
|
|
45
|
+
}
|
|
46
|
+
exports.transformSelector = transformSelector;
|
|
47
|
+
function splitSelector(spec, selector) {
|
|
48
|
+
let targetSelector = selector;
|
|
49
|
+
let activeSelector = {};
|
|
50
|
+
let elementSelector = activeSelector;
|
|
51
|
+
const contextSelectors = [];
|
|
52
|
+
while (targetSelector) {
|
|
53
|
+
if (isCommonSelector(spec, targetSelector)) {
|
|
54
|
+
activeSelector.selector = targetSelector.selector;
|
|
55
|
+
if (targetSelector.type)
|
|
56
|
+
activeSelector.type = targetSelector.type;
|
|
57
|
+
if (targetSelector.shadow) {
|
|
58
|
+
activeSelector = activeSelector.shadow = {};
|
|
59
|
+
targetSelector = targetSelector.shadow;
|
|
60
|
+
}
|
|
61
|
+
else if (targetSelector.frame) {
|
|
62
|
+
contextSelectors.push(elementSelector);
|
|
63
|
+
elementSelector = activeSelector = {};
|
|
64
|
+
targetSelector = targetSelector.frame;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
targetSelector = null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
activeSelector.selector = targetSelector;
|
|
72
|
+
targetSelector = null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return { contextSelectors, elementSelector };
|
|
76
|
+
}
|
|
77
|
+
exports.splitSelector = splitSelector;
|