@applitools/core 4.29.1 → 4.30.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
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.30.0](https://github.com/Applitools-Dev/sdk/compare/js/core@4.29.1...js/core@4.30.0) (2025-01-22)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* regions and coded regions with android NML ([#2735](https://github.com/Applitools-Dev/sdk/issues/2735)) ([be0f670](https://github.com/Applitools-Dev/sdk/commit/be0f6707336e1308423079f4895e6df044c9ebcd))
|
|
9
|
+
|
|
3
10
|
## [4.29.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.29.0...js/core@4.29.1) (2025-01-19)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -36,13 +36,16 @@ function hasCodedRegions(settings) {
|
|
|
36
36
|
exports.hasCodedRegions = hasCodedRegions;
|
|
37
37
|
async function extractMobileElementsIntoCheckSettings({ settings, driver, logger, }) {
|
|
38
38
|
logger = logger.extend({ tags: [`extract-mobile-elements-${utils.general.shortid()}`] });
|
|
39
|
+
const environment = await driver.getEnvironment();
|
|
39
40
|
if (settings.region) {
|
|
40
41
|
logger.log('extract element form region', settings.region);
|
|
41
42
|
const region = await driver.element(settings.region).catch(error => logger.log(error));
|
|
42
43
|
if (!region) {
|
|
43
44
|
throw new Error('region not found');
|
|
44
45
|
}
|
|
45
|
-
settings.region =
|
|
46
|
+
settings.region = environment.isAndroid
|
|
47
|
+
? await (region === null || region === void 0 ? void 0 : region.getAttribute('content-desc'))
|
|
48
|
+
: await (region === null || region === void 0 ? void 0 : region.getAttribute('name'));
|
|
46
49
|
}
|
|
47
50
|
if (settings.scrollRootElement) {
|
|
48
51
|
logger.log('extract element form scrollRootElement', settings.scrollRootElement);
|
|
@@ -50,7 +53,9 @@ async function extractMobileElementsIntoCheckSettings({ settings, driver, logger
|
|
|
50
53
|
if (!scrollRootElement) {
|
|
51
54
|
throw new Error('scrollRootElement not found');
|
|
52
55
|
}
|
|
53
|
-
settings.scrollRootElement =
|
|
56
|
+
settings.scrollRootElement = environment.isAndroid
|
|
57
|
+
? await (scrollRootElement === null || scrollRootElement === void 0 ? void 0 : scrollRootElement.getAttribute('content-desc'))
|
|
58
|
+
: await (scrollRootElement === null || scrollRootElement === void 0 ? void 0 : scrollRootElement.getAttribute('name'));
|
|
54
59
|
}
|
|
55
60
|
const codedRegionsAsElement = await regionTypes.reduce(async (promise, regionType) => {
|
|
56
61
|
var _a, _b;
|
|
@@ -66,7 +71,9 @@ async function extractMobileElementsIntoCheckSettings({ settings, driver, logger
|
|
|
66
71
|
return []; // elements not found
|
|
67
72
|
return elements === null || elements === void 0 ? void 0 : elements.reduce(async (promise, element) => {
|
|
68
73
|
const arr = await promise;
|
|
69
|
-
const name =
|
|
74
|
+
const name = environment.isAndroid
|
|
75
|
+
? await element.getAttribute('content-desc')
|
|
76
|
+
: await element.getAttribute('name');
|
|
70
77
|
if (handleRegion.has(name))
|
|
71
78
|
return arr;
|
|
72
79
|
handleRegion.add(name);
|
package/dist/classic/check.js
CHANGED
|
@@ -312,8 +312,11 @@ async function takeNMLScreenshot({ driver, settings, environments, logger, eyes,
|
|
|
312
312
|
settings: { ...eyes.test.eyesServer, supportedEnvironmentsUrl: eyes.test.supportedEnvironmentsUrl },
|
|
313
313
|
logger,
|
|
314
314
|
});
|
|
315
|
-
if (settings.scrollRootElement || settings.region || (0, to_base_check_settings_1.hasCodedRegions)(settings))
|
|
315
|
+
if (settings.scrollRootElement || settings.region || (0, to_base_check_settings_1.hasCodedRegions)(settings)) {
|
|
316
|
+
//TODO we can skip `preTakeScreenshot` if the element/s already have the attribute `content-desc` (for android)
|
|
317
|
+
// and send it to `takeScreenshot` right away (possibly with `name` attribute for ios as well)
|
|
316
318
|
await nmlClient.preTakeScreenshot({ logger });
|
|
319
|
+
}
|
|
317
320
|
const { elementReferences, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({
|
|
318
321
|
settings: {
|
|
319
322
|
...settings,
|