@appium/images-plugin 4.0.4 → 4.1.1
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/build/lib/compare.d.ts +8 -22
- package/build/lib/compare.d.ts.map +1 -1
- package/build/lib/compare.js +17 -23
- package/build/lib/compare.js.map +1 -1
- package/build/lib/constants.d.ts +13 -12
- package/build/lib/constants.d.ts.map +1 -1
- package/build/lib/constants.js +0 -31
- package/build/lib/constants.js.map +1 -1
- package/build/lib/finder.d.ts +22 -121
- package/build/lib/finder.d.ts.map +1 -1
- package/build/lib/finder.js +60 -100
- package/build/lib/finder.js.map +1 -1
- package/build/lib/image-element.d.ts +36 -108
- package/build/lib/image-element.d.ts.map +1 -1
- package/build/lib/image-element.js +45 -60
- package/build/lib/image-element.js.map +1 -1
- package/build/lib/index.d.ts +8 -0
- package/build/lib/index.d.ts.map +1 -0
- package/build/lib/index.js +30 -0
- package/build/lib/index.js.map +1 -0
- package/build/lib/logger.d.ts +1 -2
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +2 -2
- package/build/lib/logger.js.map +1 -1
- package/build/lib/plugin.d.ts +15 -34
- package/build/lib/plugin.d.ts.map +1 -1
- package/build/lib/plugin.js +12 -25
- package/build/lib/plugin.js.map +1 -1
- package/build/lib/types.d.ts +127 -0
- package/build/lib/types.d.ts.map +1 -0
- package/build/lib/types.js +3 -0
- package/build/lib/types.js.map +1 -0
- package/lib/compare.ts +100 -0
- package/lib/constants.ts +31 -0
- package/lib/{finder.js → finder.ts} +109 -136
- package/lib/{image-element.js → image-element.ts} +67 -85
- package/lib/index.ts +7 -0
- package/lib/logger.ts +3 -0
- package/lib/{plugin.js → plugin.ts} +42 -38
- package/lib/types.ts +187 -0
- package/package.json +14 -14
- package/tsconfig.json +3 -2
- package/index.js +0 -1
- package/lib/compare.js +0 -96
- package/lib/constants.js +0 -70
- package/lib/logger.js +0 -5
package/build/lib/finder.js
CHANGED
|
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ImageElementFinder = void 0;
|
|
6
7
|
const lodash_1 = __importDefault(require("lodash"));
|
|
7
8
|
const lru_cache_1 = require("lru-cache");
|
|
8
9
|
const driver_1 = require("appium/driver");
|
|
9
10
|
const image_element_1 = require("./image-element");
|
|
10
11
|
const compare_1 = require("./compare");
|
|
11
|
-
const logger_1 =
|
|
12
|
+
const logger_1 = require("./logger");
|
|
12
13
|
const constants_1 = require("./constants");
|
|
13
14
|
const sharp_1 = __importDefault(require("sharp"));
|
|
14
15
|
// Used to compare ratio and screen width
|
|
@@ -19,23 +20,20 @@ const MAX_CACHE_AGE_MS = 24 * 60 * 60 * 1000;
|
|
|
19
20
|
/**
|
|
20
21
|
* Checks if one rect fully contains another
|
|
21
22
|
*
|
|
22
|
-
* @param
|
|
23
|
-
* @param
|
|
24
|
-
* @returns
|
|
23
|
+
* @param templateRect The bounding rect
|
|
24
|
+
* @param rect The rect to be checked for containment
|
|
25
|
+
* @returns True if templateRect contains rect
|
|
25
26
|
*/
|
|
26
27
|
function containsRect(templateRect, rect) {
|
|
27
|
-
return templateRect.x <= rect.x &&
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
return (templateRect.x <= rect.x &&
|
|
29
|
+
templateRect.y <= rect.y &&
|
|
30
|
+
rect.width <= templateRect.x + templateRect.width - rect.x &&
|
|
31
|
+
rect.height <= templateRect.y + templateRect.height - rect.y);
|
|
30
32
|
}
|
|
31
33
|
const NO_OCCURRENCES_PATTERN = /Cannot find any occurrences/;
|
|
32
34
|
const CONDITION_UNMET_PATTERN = /Condition unmet/;
|
|
33
35
|
class ImageElementFinder {
|
|
34
|
-
/** @type {LRUCache<string,ImageElement>} */
|
|
35
36
|
_imgElCache;
|
|
36
|
-
/**
|
|
37
|
-
* @param {number} max
|
|
38
|
-
*/
|
|
39
37
|
constructor(max = MAX_CACHE_ITEMS) {
|
|
40
38
|
this._imgElCache = new lru_cache_1.LRUCache({
|
|
41
39
|
ttl: MAX_CACHE_AGE_MS,
|
|
@@ -43,51 +41,30 @@ class ImageElementFinder {
|
|
|
43
41
|
max,
|
|
44
42
|
});
|
|
45
43
|
}
|
|
46
|
-
/**
|
|
47
|
-
* @param {ImageElement} imgEl
|
|
48
|
-
* @returns {Element}
|
|
49
|
-
*/
|
|
50
44
|
registerImageElement(imgEl) {
|
|
51
45
|
this._imgElCache.set(imgEl.id, imgEl);
|
|
52
46
|
return imgEl.asElement();
|
|
53
47
|
}
|
|
54
|
-
/**
|
|
55
|
-
* @param {string} imgElId
|
|
56
|
-
* @returns {ImageElement|undefined}
|
|
57
|
-
*/
|
|
58
48
|
getImageElement(imgElId) {
|
|
59
49
|
return this._imgElCache.get(imgElId);
|
|
60
50
|
}
|
|
61
51
|
clearImageElements() {
|
|
62
52
|
this._imgElCache.clear();
|
|
63
53
|
}
|
|
64
|
-
/**
|
|
65
|
-
* @typedef FindByImageOptions
|
|
66
|
-
* @property {boolean} [shouldCheckStaleness=false] - whether this call to find an
|
|
67
|
-
* image is merely to check staleness. If so we can bypass a lot of logic
|
|
68
|
-
* @property {boolean} [multiple=false] - Whether we are finding one element or
|
|
69
|
-
* multiple
|
|
70
|
-
* @property {boolean} [ignoreDefaultImageTemplateScale=false] - Whether we
|
|
71
|
-
* ignore defaultImageTemplateScale. It can be used when you would like to
|
|
72
|
-
* scale template with defaultImageTemplateScale setting.
|
|
73
|
-
* @property {import('@appium/types').Rect?} [containerRect=null] - The bounding
|
|
74
|
-
* rectangle to limit the search in
|
|
75
|
-
*/
|
|
76
54
|
/**
|
|
77
55
|
* Find a screen rect represented by an ImageElement corresponding to an image
|
|
78
56
|
* template sent in by the client
|
|
79
57
|
*
|
|
80
|
-
* @param
|
|
81
|
-
*
|
|
82
|
-
* @param
|
|
83
|
-
* @param {FindByImageOptions} opts - additional options
|
|
58
|
+
* @param template - image used as a template to be matched in the screenshot
|
|
59
|
+
* @param driver
|
|
60
|
+
* @param opts - additional options
|
|
84
61
|
*
|
|
85
|
-
* @returns
|
|
62
|
+
* @returns WebDriver element with a special id prefix
|
|
86
63
|
*/
|
|
87
|
-
async findByImage(template, driver, { shouldCheckStaleness = false, multiple = false, ignoreDefaultImageTemplateScale = false, containerRect = null }) {
|
|
64
|
+
async findByImage(template, driver, { shouldCheckStaleness = false, multiple = false, ignoreDefaultImageTemplateScale = false, containerRect = null, } = {}) {
|
|
88
65
|
const settings = { ...constants_1.DEFAULT_SETTINGS, ...driver.settings.getSettings() };
|
|
89
66
|
const { imageMatchThreshold: threshold, imageMatchMethod, fixImageTemplateSize, fixImageTemplateScale, defaultImageTemplateScale, getMatchedImageResult: visualize, } = settings;
|
|
90
|
-
logger_1.
|
|
67
|
+
logger_1.log.info(`Finding image element with match threshold ${threshold}`);
|
|
91
68
|
if (!driver.getWindowRect && !lodash_1.default.has(driver, 'getWindowSize')) {
|
|
92
69
|
throw new Error("This driver does not support the required 'getWindowRect' command");
|
|
93
70
|
}
|
|
@@ -100,7 +77,8 @@ class ImageElementFinder {
|
|
|
100
77
|
};
|
|
101
78
|
}
|
|
102
79
|
else {
|
|
103
|
-
//
|
|
80
|
+
// TODO: Drop the deprecated endpoint
|
|
81
|
+
// @ts-expect-error - deprecated getWindowSize method
|
|
104
82
|
screenSize = await driver.getWindowSize();
|
|
105
83
|
}
|
|
106
84
|
// someone might have sent in a template that's larger than the screen
|
|
@@ -138,12 +116,17 @@ class ImageElementFinder {
|
|
|
138
116
|
comparisonOpts.method = imageMatchMethod;
|
|
139
117
|
}
|
|
140
118
|
const pushIfOk = (el) => {
|
|
141
|
-
|
|
142
|
-
|
|
119
|
+
const result = {
|
|
120
|
+
rect: el.rect,
|
|
121
|
+
score: el.score,
|
|
122
|
+
visualization: el.visualization,
|
|
123
|
+
};
|
|
124
|
+
if (containerRect && !containsRect(containerRect, result.rect)) {
|
|
125
|
+
logger_1.log.debug(`The matched element rectangle ${JSON.stringify(result.rect)} is not located ` +
|
|
143
126
|
`inside of the bounding rectangle ${JSON.stringify(containerRect)}, thus rejected`);
|
|
144
127
|
return false;
|
|
145
128
|
}
|
|
146
|
-
results.push(
|
|
129
|
+
results.push(result);
|
|
147
130
|
return true;
|
|
148
131
|
};
|
|
149
132
|
const elOrEls = await (0, compare_1.compareImages)(constants_1.MATCH_TEMPLATE_MODE, screenshot, template, comparisonOpts);
|
|
@@ -181,7 +164,7 @@ class ImageElementFinder {
|
|
|
181
164
|
throw new driver_1.errors.NoSuchElementError();
|
|
182
165
|
}
|
|
183
166
|
const elements = results.map(({ rect, score, visualization }) => {
|
|
184
|
-
logger_1.
|
|
167
|
+
logger_1.log.info(`Image template matched: ${JSON.stringify(rect)}`);
|
|
185
168
|
return new image_element_1.ImageElement({
|
|
186
169
|
template,
|
|
187
170
|
rect,
|
|
@@ -203,10 +186,10 @@ class ImageElementFinder {
|
|
|
203
186
|
/**
|
|
204
187
|
* Ensure that the image template sent in for a find is of a suitable size
|
|
205
188
|
*
|
|
206
|
-
* @param
|
|
207
|
-
* @param
|
|
189
|
+
* @param template - template image
|
|
190
|
+
* @param maxSize - size of the bounding rectangle
|
|
208
191
|
*
|
|
209
|
-
* @returns
|
|
192
|
+
* @returns image, potentially resized
|
|
210
193
|
*/
|
|
211
194
|
async ensureTemplateSize(template, maxSize) {
|
|
212
195
|
const imgObj = (0, sharp_1.default)(template);
|
|
@@ -214,16 +197,17 @@ class ImageElementFinder {
|
|
|
214
197
|
if (lodash_1.default.isNil(tplWidth) || lodash_1.default.isNil(tplHeight)) {
|
|
215
198
|
throw new Error(`Template width/height cannot be determined. Is it a valid image?`);
|
|
216
199
|
}
|
|
217
|
-
logger_1.
|
|
200
|
+
logger_1.log.info(`Template image is ${tplWidth}x${tplHeight}. Bounding rectangle size is ${maxSize.width}x${maxSize.height}`);
|
|
218
201
|
// if the template fits inside the screen dimensions, we're good
|
|
219
202
|
if (tplWidth <= maxSize.width && tplHeight <= maxSize.height) {
|
|
220
203
|
return template;
|
|
221
204
|
}
|
|
222
|
-
logger_1.
|
|
205
|
+
logger_1.log.info(`Scaling template image from ${tplWidth}x${tplHeight} to match ` +
|
|
223
206
|
`the bounding rectangle at ${maxSize.width}x${maxSize.height}`);
|
|
224
207
|
// otherwise, scale it to fit inside the bounding rectangle dimensions:
|
|
225
208
|
// https://sharp.pixelplumbing.com/api-resize
|
|
226
|
-
return await imgObj
|
|
209
|
+
return await imgObj
|
|
210
|
+
.resize({
|
|
227
211
|
width: Math.trunc(maxSize.width),
|
|
228
212
|
height: Math.trunc(maxSize.height),
|
|
229
213
|
fit: 'inside',
|
|
@@ -234,10 +218,10 @@ class ImageElementFinder {
|
|
|
234
218
|
* Get the screenshot image that will be used for find by element, potentially
|
|
235
219
|
* altering it in various ways based on user-requested settings
|
|
236
220
|
*
|
|
237
|
-
* @param
|
|
238
|
-
* @param
|
|
221
|
+
* @param driver
|
|
222
|
+
* @param screenSize - The original size of the screen
|
|
239
223
|
*
|
|
240
|
-
* @returns
|
|
224
|
+
* @returns PNG screenshot and ScreenshotScale
|
|
241
225
|
*/
|
|
242
226
|
async getScreenshotForImageFind(driver, screenSize) {
|
|
243
227
|
if (!driver.getScreenshot) {
|
|
@@ -249,28 +233,28 @@ class ImageElementFinder {
|
|
|
249
233
|
// if the user has requested not to correct for aspect or size differences
|
|
250
234
|
// between the screenshot and the screen, just return the screenshot now
|
|
251
235
|
if (!fixImageFindScreenshotDims) {
|
|
252
|
-
logger_1.
|
|
236
|
+
logger_1.log.info(`Not verifying screenshot dimensions match screen`);
|
|
253
237
|
return { screenshot };
|
|
254
238
|
}
|
|
255
239
|
if (screenSize.width < 1 || screenSize.height < 1) {
|
|
256
|
-
logger_1.
|
|
240
|
+
logger_1.log.warn(`The retrieved screen size ${screenSize.width}x${screenSize.height} does ` +
|
|
257
241
|
`not seem to be valid. No changes will be applied to the screenshot`);
|
|
258
242
|
return { screenshot };
|
|
259
243
|
}
|
|
260
244
|
// otherwise, do some verification on the screenshot to make sure it matches
|
|
261
245
|
// the screen size and aspect ratio
|
|
262
|
-
logger_1.
|
|
246
|
+
logger_1.log.info('Verifying screenshot size and aspect ratio');
|
|
263
247
|
let imgObj = (0, sharp_1.default)(screenshot);
|
|
264
248
|
let { width: shotWidth, height: shotHeight } = await imgObj.metadata();
|
|
265
249
|
if (!shotWidth || shotWidth < 1 || !shotHeight || shotHeight < 1) {
|
|
266
|
-
logger_1.
|
|
250
|
+
logger_1.log.warn(`The retrieved screenshot size ${shotWidth}x${shotHeight} does ` +
|
|
267
251
|
`not seem to be valid. No changes will be applied to the screenshot`);
|
|
268
252
|
return { screenshot };
|
|
269
253
|
}
|
|
270
254
|
if (screenSize.width === shotWidth && screenSize.height === shotHeight) {
|
|
271
255
|
// the height and width of the screenshot and the device screen match, which
|
|
272
256
|
// means we should be safe when doing template matches
|
|
273
|
-
logger_1.
|
|
257
|
+
logger_1.log.info('Screenshot size matched screen size');
|
|
274
258
|
return { screenshot };
|
|
275
259
|
}
|
|
276
260
|
// otherwise, if they don't match, it could spell problems for the accuracy
|
|
@@ -282,11 +266,11 @@ class ImageElementFinder {
|
|
|
282
266
|
const screenAR = screenSize.width / screenSize.height;
|
|
283
267
|
const shotAR = shotWidth / shotHeight;
|
|
284
268
|
if (Math.round(screenAR * FLOAT_PRECISION) === Math.round(shotAR * FLOAT_PRECISION)) {
|
|
285
|
-
logger_1.
|
|
269
|
+
logger_1.log.info(`Screenshot aspect ratio '${shotAR}' (${shotWidth}x${shotHeight}) matched ` +
|
|
286
270
|
`screen aspect ratio '${screenAR}' (${screenSize.width}x${screenSize.height})`);
|
|
287
271
|
}
|
|
288
272
|
else {
|
|
289
|
-
logger_1.
|
|
273
|
+
logger_1.log.warn(`When trying to find an element, determined that the screen ` +
|
|
290
274
|
`aspect ratio and screenshot aspect ratio are different. Screen ` +
|
|
291
275
|
`is ${screenSize.width}x${screenSize.height} whereas screenshot is ` +
|
|
292
276
|
`${shotWidth}x${shotHeight}.`);
|
|
@@ -304,9 +288,8 @@ class ImageElementFinder {
|
|
|
304
288
|
const xScale = (1.0 * shotWidth) / screenSize.width;
|
|
305
289
|
const yScale = (1.0 * shotHeight) / screenSize.height;
|
|
306
290
|
const scaleFactor = Math.min(xScale, yScale);
|
|
307
|
-
const [newWidth, newHeight] = [shotWidth * scaleFactor, shotHeight * scaleFactor]
|
|
308
|
-
|
|
309
|
-
logger_1.default.warn(`Resizing screenshot to ${newWidth}x${newHeight} to match ` +
|
|
291
|
+
const [newWidth, newHeight] = [shotWidth * scaleFactor, shotHeight * scaleFactor].map(Math.trunc);
|
|
292
|
+
logger_1.log.warn(`Resizing screenshot to ${newWidth}x${newHeight} to match ` +
|
|
310
293
|
`screen aspect ratio so that image element coordinates have a ` +
|
|
311
294
|
`greater chance of being correct.`);
|
|
312
295
|
imgObj = imgObj.resize({
|
|
@@ -316,14 +299,15 @@ class ImageElementFinder {
|
|
|
316
299
|
});
|
|
317
300
|
scale.xScale *= scaleFactor;
|
|
318
301
|
scale.yScale *= scaleFactor;
|
|
319
|
-
|
|
302
|
+
shotWidth = newWidth;
|
|
303
|
+
shotHeight = newHeight;
|
|
320
304
|
}
|
|
321
305
|
// Resize based on the screen dimensions only if both width and height are mismatched
|
|
322
306
|
// since except for that, it might be a situation which is different window rect and
|
|
323
307
|
// screenshot size like `@driver.window_rect #=>x=0, y=0, width=1080, height=1794` and
|
|
324
308
|
// `"deviceScreenSize"=>"1080x1920"`
|
|
325
309
|
if (screenSize.width !== shotWidth && screenSize.height !== shotHeight) {
|
|
326
|
-
logger_1.
|
|
310
|
+
logger_1.log.info(`Scaling screenshot from ${shotWidth}x${shotHeight} to match ` +
|
|
327
311
|
`screen at ${screenSize.width}x${screenSize.height}`);
|
|
328
312
|
imgObj = imgObj.resize({
|
|
329
313
|
width: Math.trunc(screenSize.width),
|
|
@@ -338,32 +322,23 @@ class ImageElementFinder {
|
|
|
338
322
|
scale,
|
|
339
323
|
};
|
|
340
324
|
}
|
|
341
|
-
/**
|
|
342
|
-
* @typedef ImageTemplateSettings
|
|
343
|
-
* @property {boolean} [fixImageTemplateScale=false] - fixImageTemplateScale in device-settings
|
|
344
|
-
* @property {number} [defaultImageTemplateScale=DEFAULT_TEMPLATE_IMAGE_SCALE] - defaultImageTemplateScale in device-settings
|
|
345
|
-
* @property {boolean} [ignoreDefaultImageTemplateScale=false] - Ignore defaultImageTemplateScale if it has true.
|
|
346
|
-
* If the template has been scaled to defaultImageTemplateScale or should ignore the scale,
|
|
347
|
-
* this parameter should be true. e.g. click in image-element module
|
|
348
|
-
* @property {number} [xScale=DEFAULT_FIX_IMAGE_TEMPLATE_SCALE] - Scale ratio for width
|
|
349
|
-
* @property {number} [yScale=DEFAULT_FIX_IMAGE_TEMPLATE_SCALE] - Scale ratio for height
|
|
350
|
-
|
|
351
|
-
*/
|
|
352
325
|
/**
|
|
353
326
|
* Get a image that will be used for template matching.
|
|
354
327
|
* Returns scaled image if scale ratio is provided.
|
|
355
328
|
*
|
|
356
|
-
* @param
|
|
357
|
-
*
|
|
358
|
-
* @param {ImageTemplateSettings} opts - Image template scale related options
|
|
329
|
+
* @param template - image used as a template to be matched in the screenshot
|
|
330
|
+
* @param opts - Image template scale related options
|
|
359
331
|
*
|
|
360
|
-
* @returns
|
|
332
|
+
* @returns scaled template screenshot
|
|
361
333
|
*/
|
|
362
334
|
async fixImageTemplateScale(template, opts) {
|
|
363
335
|
if (!opts) {
|
|
364
336
|
return template;
|
|
365
337
|
}
|
|
366
|
-
|
|
338
|
+
const { fixImageTemplateScale: fixTplScale = false, defaultImageTemplateScale: initialDefaultImageTemplateScale = constants_1.DEFAULT_TEMPLATE_IMAGE_SCALE, ignoreDefaultImageTemplateScale = false, xScale: initialXScale = constants_1.DEFAULT_FIX_IMAGE_TEMPLATE_SCALE, yScale: initialYScale = constants_1.DEFAULT_FIX_IMAGE_TEMPLATE_SCALE, } = opts;
|
|
339
|
+
let defaultImageTemplateScale = initialDefaultImageTemplateScale;
|
|
340
|
+
let xScale = initialXScale;
|
|
341
|
+
let yScale = initialYScale;
|
|
367
342
|
if (ignoreDefaultImageTemplateScale) {
|
|
368
343
|
defaultImageTemplateScale = constants_1.DEFAULT_TEMPLATE_IMAGE_SCALE;
|
|
369
344
|
}
|
|
@@ -384,10 +359,8 @@ class ImageElementFinder {
|
|
|
384
359
|
return template;
|
|
385
360
|
}
|
|
386
361
|
// Return if the scale is default, 1, value
|
|
387
|
-
if (Math.round(xScale * FLOAT_PRECISION) ===
|
|
388
|
-
Math.round(constants_1.DEFAULT_FIX_IMAGE_TEMPLATE_SCALE * FLOAT_PRECISION)
|
|
389
|
-
Math.round(Number(yScale * FLOAT_PRECISION ===
|
|
390
|
-
Math.round(constants_1.DEFAULT_FIX_IMAGE_TEMPLATE_SCALE * FLOAT_PRECISION)))) {
|
|
362
|
+
if (Math.round(xScale * FLOAT_PRECISION) === Math.round(constants_1.DEFAULT_FIX_IMAGE_TEMPLATE_SCALE * FLOAT_PRECISION) &&
|
|
363
|
+
Math.round(Number(yScale * FLOAT_PRECISION === Math.round(constants_1.DEFAULT_FIX_IMAGE_TEMPLATE_SCALE * FLOAT_PRECISION)))) {
|
|
391
364
|
return template;
|
|
392
365
|
}
|
|
393
366
|
let imgObj = (0, sharp_1.default)(template);
|
|
@@ -397,8 +370,8 @@ class ImageElementFinder {
|
|
|
397
370
|
}
|
|
398
371
|
const scaledWidth = baseTempWidth * xScale;
|
|
399
372
|
const scaledHeight = baseTempHeigh * yScale;
|
|
400
|
-
logger_1.
|
|
401
|
-
logger_1.
|
|
373
|
+
logger_1.log.info(`Scaling template image from ${baseTempWidth}x${baseTempHeigh} to ${scaledWidth}x${scaledHeight}`);
|
|
374
|
+
logger_1.log.info(`The ratio is ${xScale} and ${yScale}`);
|
|
402
375
|
imgObj = imgObj.resize({
|
|
403
376
|
width: Math.trunc(scaledWidth),
|
|
404
377
|
height: Math.trunc(scaledHeight),
|
|
@@ -407,18 +380,5 @@ class ImageElementFinder {
|
|
|
407
380
|
return await imgObj.toBuffer();
|
|
408
381
|
}
|
|
409
382
|
}
|
|
410
|
-
exports.
|
|
411
|
-
/**
|
|
412
|
-
* @typedef {import('@appium/types').ExternalDriver} ExternalDriver
|
|
413
|
-
* @typedef {import('@appium/types').Element} Element
|
|
414
|
-
*/
|
|
415
|
-
/**
|
|
416
|
-
* @typedef Screenshot
|
|
417
|
-
* @property {Buffer} screenshot - screenshot image as PNG
|
|
418
|
-
*/
|
|
419
|
-
/**
|
|
420
|
-
* @typedef ScreenshotScale
|
|
421
|
-
* @property {number} xScale - Scale ratio for width
|
|
422
|
-
* @property {number} yScale - Scale ratio for height
|
|
423
|
-
*/
|
|
383
|
+
exports.ImageElementFinder = ImageElementFinder;
|
|
424
384
|
//# sourceMappingURL=finder.js.map
|
package/build/lib/finder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finder.js","sourceRoot":"","sources":["../../lib/finder.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"finder.js","sourceRoot":"","sources":["../../lib/finder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,148 +1,76 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* @property {number} height - height of rect
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* @typedef Position
|
|
8
|
-
* @property {number} x - x coordinate
|
|
9
|
-
* @property {number} y - y coordinate
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* @typedef ImageElementOpts
|
|
13
|
-
* @property {Buffer} template - the image which was used to find this ImageElement
|
|
14
|
-
* @property {Rect} rect - bounds of matched image element
|
|
15
|
-
* @property {number} score The similarity score as a float number in range [0.0, 1.0].
|
|
16
|
-
* 1.0 is the highest score (means both images are totally equal).
|
|
17
|
-
* @property {Buffer?} match - the image which has matched marks. Defaults to null.
|
|
18
|
-
* @property {import('./finder').default?} finder - the finder we can use to re-check stale elements
|
|
19
|
-
* @property {import('@appium/types').Rect?} containerRect - The bounding
|
|
20
|
-
* rectangle to limit the search in
|
|
21
|
-
*/
|
|
1
|
+
import type { Rect, Element, ExternalDriver } from '@appium/types';
|
|
2
|
+
import type { ImageElementFinder } from './finder';
|
|
3
|
+
import type { Dimension, Position, ImageElementOpts } from './types';
|
|
22
4
|
/**
|
|
23
5
|
* Representation of an "image element", which is simply a set of coordinates
|
|
24
6
|
* and methods that can be used on that set of coordinates via the driver
|
|
25
7
|
*/
|
|
26
|
-
export
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
*
|
|
35
|
-
* @returns {Promise<any>} - the result of running a command
|
|
36
|
-
*/
|
|
37
|
-
static execute(driver: import("appium/driver").BaseDriver<any, import("@appium/types").StringRecord, import("@appium/types").StringRecord, import("@appium/types").DefaultCreateSessionResult<any>, void, import("@appium/types").StringRecord>, imgEl: any, cmd: string, ...args: string[]): Promise<any>;
|
|
38
|
-
/**
|
|
39
|
-
* @param {ImageElementOpts} options
|
|
40
|
-
*/
|
|
8
|
+
export declare class ImageElement {
|
|
9
|
+
readonly template: Buffer;
|
|
10
|
+
rect: Rect;
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly match: Buffer | null;
|
|
13
|
+
readonly score: number;
|
|
14
|
+
readonly finder: ImageElementFinder | null;
|
|
15
|
+
readonly containerRect: Rect | null;
|
|
41
16
|
constructor({ template, rect, score, match, finder, containerRect, }: ImageElementOpts);
|
|
42
|
-
template: Buffer<ArrayBufferLike>;
|
|
43
|
-
rect: import("@appium/types").Rect;
|
|
44
|
-
id: string;
|
|
45
|
-
match: Buffer<ArrayBufferLike> | null;
|
|
46
|
-
score: number;
|
|
47
|
-
finder: import("./finder").default | null;
|
|
48
|
-
containerRect: import("@appium/types").Rect | null;
|
|
49
17
|
/**
|
|
50
|
-
* @returns
|
|
18
|
+
* @returns dimension of element
|
|
51
19
|
*/
|
|
52
20
|
get size(): Dimension;
|
|
53
21
|
/**
|
|
54
|
-
* @returns
|
|
22
|
+
* @returns coordinates of top-left corner of element
|
|
55
23
|
*/
|
|
56
24
|
get location(): Position;
|
|
57
25
|
/**
|
|
58
|
-
* @returns
|
|
26
|
+
* @returns coordinates of center of element
|
|
59
27
|
*/
|
|
60
28
|
get center(): Position;
|
|
61
29
|
/**
|
|
62
|
-
* @returns
|
|
30
|
+
* @returns the base64-encoded original image used for matching
|
|
63
31
|
*/
|
|
64
32
|
get originalImage(): string;
|
|
65
33
|
/**
|
|
66
|
-
* @returns
|
|
34
|
+
* @returns the base64-encoded image which has matched marks
|
|
67
35
|
*/
|
|
68
36
|
get matchedImage(): string | null;
|
|
69
37
|
/**
|
|
70
38
|
*
|
|
71
|
-
* @returns
|
|
39
|
+
* @returns this image element as a WebElement
|
|
72
40
|
*/
|
|
73
41
|
asElement(): Element;
|
|
74
42
|
/**
|
|
75
|
-
* @param
|
|
43
|
+
* @param other - an ImageElement to compare with this one
|
|
76
44
|
*
|
|
77
|
-
* @returns
|
|
78
|
-
* properties
|
|
45
|
+
* @returns whether the other element and this one have the same properties
|
|
79
46
|
*/
|
|
80
47
|
equals(other: ImageElement): boolean;
|
|
81
48
|
/**
|
|
82
49
|
* Use a driver to tap the screen at the center of this ImageElement's
|
|
83
50
|
* position
|
|
84
51
|
*
|
|
85
|
-
* @param
|
|
52
|
+
* @param driver - driver for calling actions with
|
|
86
53
|
*/
|
|
87
|
-
click(driver:
|
|
54
|
+
click(driver: ExternalDriver): Promise<void>;
|
|
88
55
|
/**
|
|
89
56
|
* Perform lookup of image element(s) inside of the current element
|
|
90
57
|
*
|
|
91
|
-
* @param
|
|
92
|
-
* @param
|
|
93
|
-
* @param
|
|
94
|
-
* @returns
|
|
95
|
-
*/
|
|
96
|
-
find(multiple: boolean, driver: import("appium/driver").BaseDriver<any, import("@appium/types").StringRecord, import("@appium/types").StringRecord, import("@appium/types").DefaultCreateSessionResult<any>, void, import("@appium/types").StringRecord>, ...args: string[]): Promise<Element | Element[] | ImageElement>;
|
|
97
|
-
}
|
|
98
|
-
export type Dimension = {
|
|
99
|
-
/**
|
|
100
|
-
* - width of rect
|
|
101
|
-
*/
|
|
102
|
-
width: number;
|
|
103
|
-
/**
|
|
104
|
-
* - height of rect
|
|
58
|
+
* @param multiple - Whether to lookup multiple elements
|
|
59
|
+
* @param driver - The driver to use for commands
|
|
60
|
+
* @param args - Rest of arguments for executeScripts
|
|
61
|
+
* @returns WebDriver element with a special id prefix
|
|
105
62
|
*/
|
|
106
|
-
|
|
107
|
-
};
|
|
108
|
-
export type Position = {
|
|
63
|
+
find(multiple: boolean, driver: ExternalDriver, ...args: any[]): Promise<Element | Element[] | ImageElement>;
|
|
109
64
|
/**
|
|
110
|
-
*
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
* -
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
export type ImageElementOpts = {
|
|
119
|
-
/**
|
|
120
|
-
* - the image which was used to find this ImageElement
|
|
121
|
-
*/
|
|
122
|
-
template: Buffer;
|
|
123
|
-
/**
|
|
124
|
-
* - bounds of matched image element
|
|
125
|
-
*/
|
|
126
|
-
rect: Rect;
|
|
127
|
-
/**
|
|
128
|
-
* The similarity score as a float number in range [0.0, 1.0].
|
|
129
|
-
* 1.0 is the highest score (means both images are totally equal).
|
|
130
|
-
*/
|
|
131
|
-
score: number;
|
|
132
|
-
/**
|
|
133
|
-
* - the image which has matched marks. Defaults to null.
|
|
134
|
-
*/
|
|
135
|
-
match: Buffer | null;
|
|
136
|
-
/**
|
|
137
|
-
* - the finder we can use to re-check stale elements
|
|
138
|
-
*/
|
|
139
|
-
finder: import("./finder").default | null;
|
|
140
|
-
/**
|
|
141
|
-
* - The bounding
|
|
142
|
-
* rectangle to limit the search in
|
|
65
|
+
* Handle various Appium commands that involve an image element
|
|
66
|
+
*
|
|
67
|
+
* @param driver - the driver to use for commands
|
|
68
|
+
* @param cmd - the name of the driver command
|
|
69
|
+
* @param imgEl - image element object
|
|
70
|
+
* @param args - Rest of arguments for executeScripts
|
|
71
|
+
*
|
|
72
|
+
* @returns the result of running a command
|
|
143
73
|
*/
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
export type Rect = import("@appium/types").Rect;
|
|
147
|
-
export type Element = import("@appium/types").Element;
|
|
74
|
+
static execute(driver: ExternalDriver, imgEl: ImageElement, cmd: string, ...args: any[]): Promise<any>;
|
|
75
|
+
}
|
|
148
76
|
//# sourceMappingURL=image-element.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-element.d.ts","sourceRoot":"","sources":["../../lib/image-element.
|
|
1
|
+
{"version":3,"file":"image-element.d.ts","sourceRoot":"","sources":["../../lib/image-element.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAiB,MAAM,eAAe,CAAC;AACjF,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAgB,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAIlF;;;GAGG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;gBAExB,EACV,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAY,EACZ,MAAa,EACb,aAAoB,GACrB,EAAE,gBAAgB;IAUnB;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,CAEpB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,QAAQ,CAKrB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAEhC;IAED;;;OAGG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IASpC;;;;;OAKG;IACG,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAwGlD;;;;;;;OAOG;IACG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,EAAE,GAAG,YAAY,CAAC;IAclH;;;;;;;;;OASG;WACU,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CAmC7G"}
|