@wdio/image-comparison-core 1.1.4 → 1.2.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.
Files changed (60) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/base.interfaces.d.ts +7 -0
  3. package/dist/base.interfaces.d.ts.map +1 -1
  4. package/dist/clientSideScripts/injectWebviewOverlay.test.js +29 -0
  5. package/dist/clientSideScripts/scrollElementIntoView.d.ts.map +1 -1
  6. package/dist/clientSideScripts/scrollElementIntoView.js +4 -1
  7. package/dist/clientSideScripts/scrollElementIntoView.test.js +4 -2
  8. package/dist/commands/check.interfaces.d.ts +1 -1
  9. package/dist/commands/check.interfaces.d.ts.map +1 -1
  10. package/dist/commands/checkFullPageScreen.d.ts.map +1 -1
  11. package/dist/commands/checkFullPageScreen.js +7 -2
  12. package/dist/commands/checkWebElement.d.ts.map +1 -1
  13. package/dist/commands/checkWebElement.js +7 -2
  14. package/dist/commands/checkWebScreen.d.ts.map +1 -1
  15. package/dist/commands/checkWebScreen.js +10 -3
  16. package/dist/commands/checkWebScreen.test.js +43 -0
  17. package/dist/commands/fullPage.interfaces.d.ts +6 -0
  18. package/dist/commands/fullPage.interfaces.d.ts.map +1 -1
  19. package/dist/commands/save.interfaces.d.ts +3 -1
  20. package/dist/commands/save.interfaces.d.ts.map +1 -1
  21. package/dist/commands/saveElement.d.ts +1 -1
  22. package/dist/commands/saveElement.d.ts.map +1 -1
  23. package/dist/commands/saveElement.js +2 -2
  24. package/dist/commands/saveFullPageScreen.d.ts.map +1 -1
  25. package/dist/commands/saveFullPageScreen.js +23 -3
  26. package/dist/commands/saveWebElement.d.ts +1 -1
  27. package/dist/commands/saveWebElement.d.ts.map +1 -1
  28. package/dist/commands/saveWebElement.js +24 -2
  29. package/dist/commands/saveWebScreen.d.ts +1 -1
  30. package/dist/commands/saveWebScreen.d.ts.map +1 -1
  31. package/dist/commands/saveWebScreen.js +23 -3
  32. package/dist/helpers/afterScreenshot.interfaces.d.ts +2 -0
  33. package/dist/helpers/afterScreenshot.interfaces.d.ts.map +1 -1
  34. package/dist/helpers/options.d.ts.map +1 -1
  35. package/dist/helpers/options.interfaces.d.ts +10 -0
  36. package/dist/helpers/options.interfaces.d.ts.map +1 -1
  37. package/dist/helpers/options.js +1 -0
  38. package/dist/helpers/utils.d.ts +6 -0
  39. package/dist/helpers/utils.d.ts.map +1 -1
  40. package/dist/helpers/utils.interfaces.d.ts +3 -0
  41. package/dist/helpers/utils.interfaces.d.ts.map +1 -1
  42. package/dist/helpers/utils.js +95 -29
  43. package/dist/helpers/utils.test.js +121 -1
  44. package/dist/index.d.ts +1 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/methods/images.d.ts.map +1 -1
  47. package/dist/methods/images.interfaces.d.ts +4 -0
  48. package/dist/methods/images.interfaces.d.ts.map +1 -1
  49. package/dist/methods/images.js +4 -2
  50. package/dist/methods/rectangles.d.ts +33 -2
  51. package/dist/methods/rectangles.d.ts.map +1 -1
  52. package/dist/methods/rectangles.interfaces.d.ts +58 -0
  53. package/dist/methods/rectangles.interfaces.d.ts.map +1 -1
  54. package/dist/methods/rectangles.js +289 -15
  55. package/dist/methods/rectangles.test.js +558 -2
  56. package/dist/methods/screenshots.interfaces.d.ts +2 -1
  57. package/dist/methods/screenshots.interfaces.d.ts.map +1 -1
  58. package/dist/methods/takeElementScreenshots.js +30 -19
  59. package/dist/methods/takeElementScreenshots.test.js +49 -22
  60. package/package.json +3 -3
@@ -1,6 +1,8 @@
1
+ import type { RectanglesOutput } from '../methods/rectangles.interfaces.js';
1
2
  export interface ScreenshotOutput {
2
3
  devicePixelRatio: number;
3
4
  fileName: string;
5
+ ignoreRegions?: RectanglesOutput[];
4
6
  isLandscape: boolean;
5
7
  path: string;
6
8
  base64Image?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"afterScreenshot.interfaces.d.ts","sourceRoot":"","sources":["../../src/helpers/afterScreenshot.interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAE7B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,WAAW,EAAE,OAAO,CAAC;IAErB,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IAEnC,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,MAAM,CAAC;IAEpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,QAAQ,EAAE,yBAAyB,CAAC;IAEpC,QAAQ,EAAE,yBAAyB,CAAC;IAEpC,YAAY,CAAC,EAAE,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC;IAE/C,WAAW,EAAE,OAAO,CAAC;IAErB,eAAe,EAAE,OAAO,CAAC;IAEzB,YAAY,EAAE,MAAM,CAAC;IAErB,cAAc,CAAC,EAAE,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC;IAEjD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IAEtC,WAAW,EAAE,MAAM,CAAC;IAEpB,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ,EAAE,OAAO,CAAC;IAElB,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IAEtC,WAAW,EAAE,MAAM,CAAC;IAEpB,cAAc,EAAE,MAAM,CAAC;IAEvB,UAAU,EAAE,MAAM,CAAC;IAEnB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,eAAe,EAAE,MAAM,CAAC;IAExB,QAAQ,EAAE,OAAO,CAAC;IAElB,eAAe,EAAE,OAAO,CAAC;IAEzB,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,EAAE,MAAM,CAAC;IAErB,eAAe,EAAE,MAAM,CAAC;IAExB,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,MAAM,CAAC;IAEpB,GAAG,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"afterScreenshot.interfaces.d.ts","sourceRoot":"","sources":["../../src/helpers/afterScreenshot.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,MAAM,WAAW,gBAAgB;IAE7B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEnC,WAAW,EAAE,OAAO,CAAC;IAErB,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IAEnC,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,MAAM,CAAC;IAEpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,QAAQ,EAAE,yBAAyB,CAAC;IAEpC,QAAQ,EAAE,yBAAyB,CAAC;IAEpC,YAAY,CAAC,EAAE,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC;IAE/C,WAAW,EAAE,OAAO,CAAC;IAErB,eAAe,EAAE,OAAO,CAAC;IAEzB,YAAY,EAAE,MAAM,CAAC;IAErB,cAAc,CAAC,EAAE,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC;IAEjD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IAEtC,WAAW,EAAE,MAAM,CAAC;IAEpB,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ,EAAE,OAAO,CAAC;IAElB,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IAEtC,WAAW,EAAE,MAAM,CAAC;IAEpB,cAAc,EAAE,MAAM,CAAC;IAEvB,UAAU,EAAE,MAAM,CAAC;IAEnB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,eAAe,EAAE,MAAM,CAAC;IAExB,QAAQ,EAAE,OAAO,CAAC;IAElB,eAAe,EAAE,OAAO,CAAC;IAEzB,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,EAAE,MAAM,CAAC;IAErB,eAAe,EAAE,MAAM,CAAC;IAExB,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,MAAM,CAAC;IAEpB,GAAG,EAAE,MAAM,CAAC;CACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/helpers/options.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,EAAE,gCAAgC,EAAE,sCAAsC,EAAE,MAAM,iCAAiC,CAAA;AAC/H,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACvG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAS/E;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CA4DpE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,sCAAsC,GAChD,sCAAsC,CAOxC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gCAAgC,GAAG,gCAAgC,CAoBhH;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CACzC,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE;IACX,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,cAAc,CAAC,EAAE,WAAW,EAAE,CAAA;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC/B,EACD,UAAU,EAAE;IACR,uBAAuB,EAAE,MAAM,CAAA;IAC/B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC/B,GACF,uBAAuB,CAazB;AAED,MAAM,WAAW,gCAAgC;IAE7C,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,EAAE;QACR,eAAe,EAAE,MAAM,CAAA;QACvB,eAAe,EAAE,OAAO,CAAA;QACxB,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAClC,CAAA;IAGD,oBAAoB,CAAC,EAAE,sBAAsB,CAAA;IAC7C,aAAa,CAAC,EAAE,uBAAuB,CAAA;CAC1C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,EACxC,WAAW,EACX,OAAO,EACP,GAAG,EACH,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,UAAU,EACb,EAAE,gCAAgC,GAAG,sBAAsB,CA0E3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,mBAAmB,EAAE,gCAAgC,GAAG,sBAAsB,EAAE,CAQpH"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/helpers/options.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,EAAE,gCAAgC,EAAE,sCAAsC,EAAE,MAAM,iCAAiC,CAAA;AAC/H,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACvG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAS/E;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CA6DpE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,sCAAsC,GAChD,sCAAsC,CAOxC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gCAAgC,GAAG,gCAAgC,CAoBhH;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CACzC,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE;IACX,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,cAAc,CAAC,EAAE,WAAW,EAAE,CAAA;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC/B,EACD,UAAU,EAAE;IACR,uBAAuB,EAAE,MAAM,CAAA;IAC/B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC/B,GACF,uBAAuB,CAazB;AAED,MAAM,WAAW,gCAAgC;IAE7C,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,EAAE;QACR,eAAe,EAAE,MAAM,CAAA;QACvB,eAAe,EAAE,OAAO,CAAA;QACxB,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAClC,CAAA;IAGD,oBAAoB,CAAC,EAAE,sBAAsB,CAAA;IAC7C,aAAa,CAAC,EAAE,uBAAuB,CAAA;CAC1C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,EACxC,WAAW,EACX,OAAO,EACP,GAAG,EACH,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,UAAU,EACb,EAAE,gCAAgC,GAAG,sBAAsB,CA0E3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,mBAAmB,EAAE,gCAAgC,GAAG,sBAAsB,EAAE,CAQpH"}
@@ -85,6 +85,11 @@ export interface ClassOptions {
85
85
  * Hide scrollbars in the screenshots.
86
86
  */
87
87
  hideScrollBars?: boolean;
88
+ /**
89
+ * Padding in device pixels added to each side of element ignore regions (default 1).
90
+ * Set to 0 to disable. Only applies to element screenshots.
91
+ */
92
+ ignoreRegionPadding?: number;
88
93
  /**
89
94
  * @deprecated Use `compareOptions` instead.
90
95
  * Automatically block out the side bar for iPads in landscape mode during comparisons.
@@ -277,6 +282,11 @@ export interface DefaultOptions {
277
282
  * Hide scrollbars in the screenshot.
278
283
  */
279
284
  hideScrollBars: boolean;
285
+ /**
286
+ * Padding in device pixels added to each side of element ignore regions (default 1).
287
+ * Set to 0 to disable. Only applies to element screenshots.
288
+ */
289
+ ignoreRegionPadding?: number;
280
290
  /**
281
291
  * Indicates whether the app is a hybrid (native + webview).
282
292
  */
@@ -1 +1 @@
1
- {"version":3,"file":"options.interfaces.d.ts","sourceRoot":"","sources":["../../src/helpers/options.interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.interfaces.d.ts","sourceRoot":"","sources":["../../src/helpers/options.interfaces.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ export function defaultOptions(options) {
32
32
  // Default to false for storybook mode as element screenshots use W3C protocol without scrollbars
33
33
  // This also saves an extra webdriver call
34
34
  hideScrollBars: getBooleanOption(options, 'hideScrollBars', !isStorybookMode),
35
+ ignoreRegionPadding: options.ignoreRegionPadding ?? 1,
35
36
  waitForFontsLoaded: options.waitForFontsLoaded ?? true,
36
37
  alwaysSaveActualImage: options.alwaysSaveActualImage ?? true,
37
38
  /**
@@ -97,6 +97,12 @@ export declare function executeNativeClick({ browserInstance, isIOS, x, y }: Exe
97
97
  * 4. Getting the data from the overlay and removing it
98
98
  * 5. Calculating the position of the viewport based on the click position of the native click vs the overlay
99
99
  * 6. Returning the calculated values
100
+ *
101
+ * On Android only: when the overlay reports zero dimensions (width=0, height=0)
102
+ * the native click did not reach the webview. This typically means Chrome's Start
103
+ * Surface or tab overview is blocking it. The function will retry up to
104
+ * MAX_ANDROID_VIEWPORT_MEASUREMENT_RETRIES times, tapping the tab thumbnail area
105
+ * between attempts to dismiss the blocking UI.
100
106
  */
101
107
  export declare function getMobileViewPortPosition({ browserInstance, initialDeviceRectangles, isAndroid, isIOS, isNativeContext, nativeWebScreenshot, screenHeight, screenWidth, }: GetMobileViewPortPositionOptions): Promise<DeviceRectangles>;
102
108
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
@@ -156,6 +156,7 @@ export interface CommonCheckVariables {
156
156
  isAndroidNativeWebScreenshot: boolean;
157
157
  /** Optional instance data (not all methods need these) */
158
158
  platformName?: string;
159
+ platformVersion?: string;
159
160
  isIOS?: boolean;
160
161
  /** WIC options */
161
162
  autoSaveBaseline: boolean;
@@ -216,6 +217,8 @@ export interface BaseExecuteCompareOptions {
216
217
  isAndroidNativeWebScreenshot: boolean;
217
218
  /** Optional: platform name */
218
219
  platformName?: string;
220
+ /** Optional: platform version (e.g. "14.0" for Android API 14, "17.0" for iOS) */
221
+ platformVersion?: string;
219
222
  /** Optional: whether this is iOS */
220
223
  isIOS?: boolean;
221
224
  /** Optional: whether this is hybrid app */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.interfaces.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.interfaces.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC7G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,MAAM,WAAW,uBAAuB;IACpC,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IAClC,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACtD,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iCAAiC;IAC9C,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qCAAqC;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB;IACtB,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,8BAA8B;IAC3C,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB;IACtB,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAG;AAEzD,MAAM,WAAW,gCAAgC;IAC7C,2BAA2B;IAC3B,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC;IACrC,oCAAoC;IACpC,uBAAuB,EAAE,gBAAgB,CAAC;IAC1C,4BAA4B;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,4BAA4B;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,6DAA6D;IAC7D,mBAAmB,EAAE,OAAO,CAAC;IAC7B,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACvC,2BAA2B;IAC3B,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC;IACrC,wBAAwB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,4BAA4B;IAC5B,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IAClC,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IAClC,2BAA2B;IAC3B,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC;IACrC,wBAAwB;IACxB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAC9D,2BAA2B;IAC3B,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC;IACrC,wBAAwB;IACxB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACjC,mBAAmB;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IAEnB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,GAAG,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,4BAA4B,EAAE,OAAO,CAAC;IAEtC,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,kBAAkB;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kCAAkC;IAC/C,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,YAAY,EAAE,GAAG,CAAC;IAClB,6BAA6B;IAC7B,UAAU,EAAE,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC1B,2CAA2C;IAC3C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACtC,mFAAmF;IACnF,oBAAoB,EAAE,oBAAoB,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACtC,8CAA8C;IAC9C,cAAc,EAAE;QACZ,GAAG,EAAE,GAAG,CAAC;QACT,MAAM,EAAE,GAAG,CAAC;KACf,CAAC;IACF,yBAAyB;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,gBAAgB,EAAE,GAAG,CAAC;IACtB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,4BAA4B,EAAE,OAAO,CAAC;IACtC,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iDAAiD;IACjD,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,qCAAqC;IAClD,iEAAiE;IACjE,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,0BAA0B;IAC1B,iBAAiB,EAAE,GAAG,CAAC;IACvB,6BAA6B;IAC7B,oBAAoB,EAAE,GAAG,CAAC;IAC1B,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,iCAAkC,SAAQ,OAAO;IAC9D,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS,EAAE,WAAW;CAAG"}
@@ -68,7 +68,7 @@ export function checkTestInMobileBrowser(isMobile, browserName) {
68
68
  * Checks if this is a native webscreenshot on android
69
69
  */
70
70
  export function checkAndroidNativeWebScreenshot(isAndroid, nativeWebscreenshot) {
71
- return (isAndroid && nativeWebscreenshot) || false;
71
+ return (isAndroid && !!nativeWebscreenshot) || false;
72
72
  }
73
73
  /**
74
74
  * Checks if this is an Android chromedriver screenshot
@@ -392,6 +392,16 @@ export async function executeNativeClick({ browserInstance, isIOS, x, y }) {
392
392
  }
393
393
  }
394
394
  }
395
+ /**
396
+ * The maximum number of times we attempt to measure the viewport position on Android.
397
+ * Chrome may start in the "Start Surface" (tab thumbnail overview) which blocks
398
+ * native clicks from reaching the webview overlay. Each retry dismisses the Start
399
+ * Surface via a combination of native taps and WebDriver URL navigation, then
400
+ * re-attempts the measurement.
401
+ *
402
+ * iOS does not suffer from this issue, so only a single attempt is made there.
403
+ */
404
+ const MAX_ANDROID_VIEWPORT_MEASUREMENT_RETRIES = 5;
395
405
  /**
396
406
  * Get the mobile viewport position, we determine this by:
397
407
  * 1. Loading a base64 HTML page
@@ -400,45 +410,99 @@ export async function executeNativeClick({ browserInstance, isIOS, x, y }) {
400
410
  * 4. Getting the data from the overlay and removing it
401
411
  * 5. Calculating the position of the viewport based on the click position of the native click vs the overlay
402
412
  * 6. Returning the calculated values
413
+ *
414
+ * On Android only: when the overlay reports zero dimensions (width=0, height=0)
415
+ * the native click did not reach the webview. This typically means Chrome's Start
416
+ * Surface or tab overview is blocking it. The function will retry up to
417
+ * MAX_ANDROID_VIEWPORT_MEASUREMENT_RETRIES times, tapping the tab thumbnail area
418
+ * between attempts to dismiss the blocking UI.
403
419
  */
404
420
  export async function getMobileViewPortPosition({ browserInstance, initialDeviceRectangles, isAndroid, isIOS, isNativeContext, nativeWebScreenshot, screenHeight, screenWidth, }) {
405
421
  if (!isNativeContext && (isIOS || (isAndroid && nativeWebScreenshot))) {
406
422
  const currentUrl = await browserInstance.getUrl();
407
- // 1. Load a base64 HTML page
408
- await loadBase64Html({ browserInstance, isIOS });
409
- // 2. Inject an overlay on top of the webview with an event listener that stores the click position in the webview
410
- await browserInstance.execute(injectWebviewOverlay, isAndroid);
411
- // 3. Click on the overlay in the center of the screen with a native click
412
423
  const nativeClickX = screenWidth / 2;
413
424
  const nativeClickY = screenHeight / 2;
414
- await executeNativeClick({ browserInstance, isIOS, x: nativeClickX, y: nativeClickY });
415
- // We need to wait a bit here, otherwise the click is not registered
416
- await waitFor(100);
417
- // 4a. Get the data from the overlay and remove it
418
- const { y, x, width, height } = await browserInstance.execute(getMobileWebviewClickAndDimensions, '[data-test="ics-overlay"]');
419
- // 4.b reset the url
425
+ const maxAttempts = isAndroid ? MAX_ANDROID_VIEWPORT_MEASUREMENT_RETRIES : 1;
426
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
427
+ // 1. Load a base64 HTML page
428
+ await loadBase64Html({ browserInstance, isIOS });
429
+ // 2. Inject an overlay on top of the webview with an event listener that stores the click position in the webview
430
+ await browserInstance.execute(injectWebviewOverlay, isAndroid);
431
+ // 3. Click on the overlay in the center of the screen with a native click
432
+ await executeNativeClick({ browserInstance, isIOS, x: nativeClickX, y: nativeClickY });
433
+ // We need to wait a bit here, otherwise the click is not registered
434
+ await waitFor(100);
435
+ // 4a. Get the data from the overlay and remove it
436
+ const { y, x, width, height } = await browserInstance.execute(getMobileWebviewClickAndDimensions, '[data-test="ics-overlay"]');
437
+ // 4b. On Android, validate the overlay data.
438
+ // NOTE: for future detection of Chrome's Start Surface, `document.visibilityState`
439
+ // and `document.hasFocus()` can be used as a more direct signal. When the Start
440
+ // Surface is active the webview reports visibility: "hidden" and hasFocus: false.
441
+ // When width and height are both 0 the native click never reached the overlay,
442
+ // which typically means Chrome's Start Surface or tab overview is blocking the webview.
443
+ if (isAndroid && width === 0 && height === 0) {
444
+ log.warn(`Viewport measurement attempt ${attempt}/${maxAttempts}: ` +
445
+ 'overlay did not receive the native click. ' +
446
+ 'Chrome may be showing its Start Surface or tab overview.');
447
+ if (attempt < maxAttempts) {
448
+ await dismissAndroidStartSurface({ browserInstance });
449
+ }
450
+ continue;
451
+ }
452
+ // 4c. Reset the url
453
+ await browserInstance.url(currentUrl);
454
+ // 5. Calculate the position of the viewport based on the click position of the native click vs the overlay
455
+ const viewportTop = Math.max(0, Math.round(nativeClickY - y));
456
+ const viewportLeft = Math.max(0, Math.round(nativeClickX - x));
457
+ const statusBarAndAddressBarHeight = Math.max(0, Math.round(viewportTop));
458
+ const bottomBarHeight = Math.max(0, Math.round(screenHeight - (viewportTop + height)));
459
+ const leftSidePaddingWidth = Math.max(0, Math.round(viewportLeft));
460
+ const rightSidePaddingWidth = Math.max(0, Math.round(screenWidth - (viewportLeft + width)));
461
+ const deviceRectangles = {
462
+ ...initialDeviceRectangles,
463
+ bottomBar: { y: viewportTop + height, x: 0, width: screenWidth, height: bottomBarHeight },
464
+ leftSidePadding: { y: viewportTop, x: 0, width: leftSidePaddingWidth, height: height },
465
+ rightSidePadding: { y: viewportTop, x: viewportLeft + width, width: rightSidePaddingWidth, height: height },
466
+ screenSize: { height: screenHeight, width: screenWidth },
467
+ statusBarAndAddressBar: { y: 0, x: 0, width: screenWidth, height: statusBarAndAddressBarHeight },
468
+ viewport: { y: viewportTop, x: viewportLeft, width: width, height: height },
469
+ };
470
+ return deviceRectangles;
471
+ }
472
+ // All Android retries exhausted — reset the URL and fall through to initialDeviceRectangles
473
+ log.error(`Viewport measurement failed after ${maxAttempts} attempts. ` +
474
+ 'Chrome appears stuck in Start Surface or tab overview mode. ' +
475
+ 'Returning initial device rectangles; screenshots may have incorrect dimensions.');
420
476
  await browserInstance.url(currentUrl);
421
- // 5. Calculate the position of the viewport based on the click position of the native click vs the overlay
422
- const viewportTop = Math.max(0, Math.round(nativeClickY - y));
423
- const viewportLeft = Math.max(0, Math.round(nativeClickX - x));
424
- const statusBarAndAddressBarHeight = Math.max(0, Math.round(viewportTop));
425
- const bottomBarHeight = Math.max(0, Math.round(screenHeight - (viewportTop + height)));
426
- const leftSidePaddingWidth = Math.max(0, Math.round(viewportLeft));
427
- const rightSidePaddingWidth = Math.max(0, Math.round(screenWidth - (viewportLeft + width)));
428
- const deviceRectangles = {
429
- ...initialDeviceRectangles,
430
- bottomBar: { y: viewportTop + height, x: 0, width: screenWidth, height: bottomBarHeight },
431
- leftSidePadding: { y: viewportTop, x: 0, width: leftSidePaddingWidth, height: height },
432
- rightSidePadding: { y: viewportTop, x: viewportLeft + width, width: rightSidePaddingWidth, height: height },
433
- screenSize: { height: screenHeight, width: screenWidth },
434
- statusBarAndAddressBar: { y: 0, x: 0, width: screenWidth, height: statusBarAndAddressBarHeight },
435
- viewport: { y: viewportTop, x: viewportLeft, width: width, height: height },
436
- };
437
- return deviceRectangles;
438
477
  }
439
478
  // No WebView detected, return empty values
440
479
  return initialDeviceRectangles;
441
480
  }
481
+ /**
482
+ * Attempt to dismiss Chrome's "Start Surface" (tab thumbnail overview) on Android
483
+ * by pressing the Android Back button (KEYCODE_BACK = 4).
484
+ *
485
+ * The Back button is preferred over tapping a tab thumbnail because:
486
+ * - It reliably exits the tab overview regardless of orientation or device
487
+ * - It doesn't risk accidentally closing a tab by hitting the "X" button
488
+ *
489
+ * // --- Commented-out tap approach kept for reference ---
490
+ * // const isLandscape = screenWidth > screenHeight
491
+ * // const pct = isLandscape ? 0.30 : 0.15
492
+ * // const tapX = Math.round(screenWidth * pct)
493
+ * // const tapY = Math.round(screenHeight * pct)
494
+ * // console.log(`[VIEWPORT-DEBUG] dismissStartSurface: tapping (${tapX}, ${tapY}) on ${screenWidth}x${screenHeight} (${isLandscape ? 'landscape' : 'portrait'})`)
495
+ * // await executeNativeClick({ browserInstance, isIOS: false, x: tapX, y: tapY })
496
+ */
497
+ async function dismissAndroidStartSurface({ browserInstance, }) {
498
+ try {
499
+ await browserInstance.execute('mobile: pressKey', { keycode: 4 });
500
+ await waitFor(1500);
501
+ }
502
+ catch (error) {
503
+ log.warn('Failed to dismiss Chrome Start Surface via Back button', error);
504
+ }
505
+ }
442
506
  /**
443
507
  * Get the value of a method or the default value
444
508
  */
@@ -491,6 +555,7 @@ export function extractCommonCheckVariables(options) {
491
555
  isAndroidNativeWebScreenshot: instanceData.nativeWebScreenshot,
492
556
  // Optional instance data
493
557
  ...(instanceData.platformName && { platformName: instanceData.platformName }),
558
+ ...(instanceData.platformVersion && { platformVersion: instanceData.platformVersion }),
494
559
  ...(instanceData.isIOS !== undefined && { isIOS: instanceData.isIOS }),
495
560
  // WIC options
496
561
  autoSaveBaseline: wicOptions.autoSaveBaseline,
@@ -542,6 +607,7 @@ export function buildBaseExecuteCompareOptions(options) {
542
607
  isAndroidNativeWebScreenshot: commonCheckVariables.isAndroidNativeWebScreenshot,
543
608
  // Add optional properties from commonCheckVariables if they exist
544
609
  ...(commonCheckVariables.platformName && { platformName: commonCheckVariables.platformName }),
610
+ ...(commonCheckVariables.platformVersion && { platformVersion: commonCheckVariables.platformVersion }),
545
611
  ...(commonCheckVariables.isIOS !== undefined && { isIOS: commonCheckVariables.isIOS }),
546
612
  ...(commonCheckVariables.isHybridApp !== undefined && { isHybridApp: commonCheckVariables.isHybridApp }),
547
613
  };
@@ -542,7 +542,8 @@ describe('utils', () => {
542
542
  .mockResolvedValueOnce(undefined) // checkMetaTag
543
543
  .mockResolvedValueOnce(undefined) // injectWebviewOverlay
544
544
  .mockResolvedValueOnce(undefined) // executeNativeClick
545
- .mockResolvedValueOnce({ x: 150, y: 300, width: 100, height: 100 }); // getMobileWebviewClickAndDimensions
545
+ .mockResolvedValueOnce({ x: 150, y: 300, width: 100, height: 100 }) // getMobileWebviewClickAndDimensions
546
+ .mockResolvedValueOnce({ vs: 'visible', focus: true }); // visibilityState debug check
546
547
  const result = await getMobileViewPortPosition({
547
548
  browserInstance: mockBrowserInstance,
548
549
  ...baseOptions,
@@ -552,6 +553,125 @@ describe('utils', () => {
552
553
  expect(mockBrowserInstance.execute).toHaveBeenCalledWith(getMobileWebviewClickAndDimensions, '[data-test="ics-overlay"]');
553
554
  expect(result).toMatchSnapshot();
554
555
  });
556
+ it('should handle rounded overlay values from non-integer DPR', async () => {
557
+ const dpr = 2.625;
558
+ const screenW = 1080;
559
+ const screenH = 2424;
560
+ const cssClickX = 206;
561
+ const cssClickY = 385;
562
+ const cssWidth = 412;
563
+ const cssHeight = 363;
564
+ const overlayWidth = Math.round(cssWidth * dpr);
565
+ const overlayHeight = Math.round(cssHeight * dpr);
566
+ vi.mocked(mockBrowserInstance.execute)
567
+ .mockResolvedValueOnce(undefined) // loadBase64Html
568
+ .mockResolvedValueOnce(undefined) // checkMetaTag (iOS)
569
+ .mockResolvedValueOnce(undefined) // injectWebviewOverlay
570
+ .mockResolvedValueOnce(undefined) // executeNativeClick
571
+ .mockResolvedValueOnce({
572
+ x: Math.round(cssClickX * dpr),
573
+ y: Math.round(cssClickY * dpr),
574
+ width: overlayWidth,
575
+ height: overlayHeight,
576
+ }) // getMobileWebviewClickAndDimensions (rounded integers from overlay)
577
+ .mockResolvedValueOnce({ vs: 'visible', focus: true }); // visibilityState debug check
578
+ const result = await getMobileViewPortPosition({
579
+ browserInstance: mockBrowserInstance,
580
+ ...baseOptions,
581
+ screenHeight: screenH,
582
+ screenWidth: screenW,
583
+ });
584
+ const viewportTop = Math.max(0, Math.round(screenH / 2 - Math.round(cssClickY * dpr)));
585
+ const viewportLeft = Math.max(0, Math.round(screenW / 2 - Math.round(cssClickX * dpr)));
586
+ expect(result.viewport.y).toBe(viewportTop);
587
+ expect(result.viewport.x).toBe(viewportLeft);
588
+ expect(result.viewport.width).toBe(overlayWidth);
589
+ expect(result.viewport.height).toBe(overlayHeight);
590
+ expect(result.statusBarAndAddressBar.height).toBe(Math.max(0, Math.round(viewportTop)));
591
+ });
592
+ it('should retry and succeed on Android when overlay returns zeros (Start Surface blocking)', async () => {
593
+ const warnSpy = vi.spyOn(log, 'warn').mockImplementation(() => { });
594
+ vi.mocked(mockBrowserInstance.execute)
595
+ // --- Attempt 1: overlay returns zeros (Start Surface is blocking) ---
596
+ .mockResolvedValueOnce(undefined) // loadBase64Html (blob)
597
+ .mockResolvedValueOnce(undefined) // injectWebviewOverlay
598
+ .mockResolvedValueOnce(undefined) // executeNativeClick (screen center)
599
+ .mockResolvedValueOnce({ x: 0, y: 0, width: 0, height: 0 }) // getMobileWebviewClickAndDimensions
600
+ // --- Dismiss Start Surface: Back button ---
601
+ .mockResolvedValueOnce(undefined) // mobile: pressKey (Back button)
602
+ // --- Attempt 2: overlay returns valid data ---
603
+ .mockResolvedValueOnce(undefined) // loadBase64Html (blob)
604
+ .mockResolvedValueOnce(undefined) // injectWebviewOverlay
605
+ .mockResolvedValueOnce(undefined) // executeNativeClick (screen center)
606
+ .mockResolvedValueOnce({ x: 150, y: 300, width: 100, height: 100 }); // getMobileWebviewClickAndDimensions
607
+ const result = await getMobileViewPortPosition({
608
+ browserInstance: mockBrowserInstance,
609
+ ...baseOptions,
610
+ isAndroid: true,
611
+ isIOS: false,
612
+ });
613
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('overlay did not receive the native click'));
614
+ expect(mockBrowserInstance.url).toHaveBeenCalledWith('http://example.com');
615
+ expect(result.viewport.width).toBe(100);
616
+ expect(result.viewport.height).toBe(100);
617
+ warnSpy.mockRestore();
618
+ });
619
+ it('should return initialDeviceRectangles after all retries are exhausted on Android', { timeout: 15000 }, async () => {
620
+ const warnSpy = vi.spyOn(log, 'warn').mockImplementation(() => { });
621
+ const errorSpy = vi.spyOn(log, 'error').mockImplementation(() => { });
622
+ const zeroOverlay = { x: 0, y: 0, width: 0, height: 0 };
623
+ const attemptMocks = () => [
624
+ undefined, // loadBase64Html
625
+ undefined, // injectWebviewOverlay
626
+ undefined, // executeNativeClick (center)
627
+ zeroOverlay, // getMobileWebviewClickAndDimensions
628
+ ];
629
+ const mocked = vi.mocked(mockBrowserInstance.execute);
630
+ // 5 attempts: attempts 1-4 have Back button dismissal, last attempt has none
631
+ for (let i = 0; i < 5; i++) {
632
+ for (const val of attemptMocks()) {
633
+ mocked.mockResolvedValueOnce(val);
634
+ }
635
+ if (i < 4) {
636
+ mocked.mockResolvedValueOnce(undefined); // mobile: pressKey (Back button)
637
+ }
638
+ }
639
+ const result = await getMobileViewPortPosition({
640
+ browserInstance: mockBrowserInstance,
641
+ ...baseOptions,
642
+ isAndroid: true,
643
+ isIOS: false,
644
+ });
645
+ expect(warnSpy).toHaveBeenCalledTimes(5);
646
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Viewport measurement failed after 5 attempts'));
647
+ expect(mockBrowserInstance.url).toHaveBeenCalledWith('http://example.com');
648
+ expect(result).toEqual(DEVICE_RECTANGLES);
649
+ warnSpy.mockRestore();
650
+ errorSpy.mockRestore();
651
+ });
652
+ it('should not retry on iOS when overlay returns zeros', async () => {
653
+ const warnSpy = vi.spyOn(log, 'warn').mockImplementation(() => { });
654
+ vi.mocked(mockBrowserInstance.execute)
655
+ .mockResolvedValueOnce(undefined) // loadBase64Html (blob)
656
+ .mockResolvedValueOnce(undefined) // checkMetaTag (iOS)
657
+ .mockResolvedValueOnce(undefined) // injectWebviewOverlay
658
+ .mockResolvedValueOnce(undefined) // executeNativeClick (center, 'mobile: tap')
659
+ .mockResolvedValueOnce({ x: 0, y: 0, width: 0, height: 0 }) // getMobileWebviewClickAndDimensions
660
+ .mockResolvedValueOnce({ vs: 'visible', focus: true }); // visibilityState debug check
661
+ const result = await getMobileViewPortPosition({
662
+ browserInstance: mockBrowserInstance,
663
+ ...baseOptions,
664
+ isAndroid: false,
665
+ isIOS: true,
666
+ });
667
+ // iOS uses a single attempt — no retry, no Start Surface dismissal
668
+ expect(warnSpy).not.toHaveBeenCalled();
669
+ expect(mockBrowserInstance.url).toHaveBeenCalledWith('http://example.com');
670
+ // The zero overlay values produce a viewport at screen center with 0 dimensions
671
+ expect(result.viewport.width).toBe(0);
672
+ expect(result.viewport.height).toBe(0);
673
+ warnSpy.mockRestore();
674
+ });
555
675
  it('should return initialDeviceRectangles if not WebView (native context)', async () => {
556
676
  const result = await getMobileViewPortPosition({
557
677
  browserInstance: mockBrowserInstance,
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ import { InternalCheckElementMethodOptions, InternalCheckFullPageMethodOptions,
15
15
  import { InternalSaveElementMethodOptions, InternalSaveFullPageMethodOptions, InternalSaveScreenMethodOptions, InternalSaveTabbablePageMethodOptions } from './commands/save.interfaces.js';
16
16
  export type { ScreenshotOutput } from './helpers/afterScreenshot.interfaces.js';
17
17
  export type { CheckScreenMethodOptions, SaveScreenMethodOptions, } from './commands/screen.interfaces.js';
18
- export type { WicElement, CheckElementMethodOptions, SaveElementMethodOptions, } from './commands/element.interfaces.js';
18
+ export type { ElementIgnore, WicElement, CheckElementMethodOptions, SaveElementMethodOptions, } from './commands/element.interfaces.js';
19
19
  export type { CheckFullPageMethodOptions, SaveFullPageMethodOptions, } from './commands/fullPage.interfaces.js';
20
20
  export type { TestContext } from './methods/compareReport.interfaces.js';
21
21
  export type { Folders } from './base.interfaces.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AACjC,OAAO,UAAU,MAAM,0BAA0B,CAAA;AACjD,OAAO,WAAW,MAAM,2BAA2B,CAAA;AACnD,OAAO,kBAAkB,MAAM,kCAAkC,CAAA;AACjE,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,WAAW,MAAM,2BAA2B,CAAA;AACnD,OAAO,YAAY,MAAM,4BAA4B,CAAA;AACrD,OAAO,mBAAmB,MAAM,mCAAmC,CAAA;AACnE,OAAO,iBAAiB,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACjH,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AACnF,OAAO,EAAE,iCAAiC,EAAE,kCAAkC,EAAE,gCAAgC,EAAE,sCAAsC,EAAE,MAAM,gCAAgC,CAAA;AAChM,OAAO,EAAE,gCAAgC,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,MAAM,+BAA+B,CAAA;AAE3L,YAAY,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,YAAY,EACR,wBAAwB,EACxB,uBAAuB,GAC1B,MAAM,iCAAiC,CAAA;AACxC,YAAY,EACR,UAAU,EACV,yBAAyB,EACzB,wBAAwB,GAC3B,MAAM,kCAAkC,CAAA;AACzC,YAAY,EACR,0BAA0B,EAC1B,yBAAyB,GAC5B,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACxE,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,YAAY,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAEH,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,SAAS,EAET,SAAS,EAET,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EAEzB,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,qCAAqC,EACrC,gCAAgC,EAChC,iCAAiC,EACjC,kCAAkC,EAClC,sCAAsC,EACtC,kBAAkB,EAClB,YAAY,GACf,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AACjC,OAAO,UAAU,MAAM,0BAA0B,CAAA;AACjD,OAAO,WAAW,MAAM,2BAA2B,CAAA;AACnD,OAAO,kBAAkB,MAAM,kCAAkC,CAAA;AACjE,OAAO,gBAAgB,MAAM,gCAAgC,CAAA;AAC7D,OAAO,WAAW,MAAM,2BAA2B,CAAA;AACnD,OAAO,YAAY,MAAM,4BAA4B,CAAA;AACrD,OAAO,mBAAmB,MAAM,mCAAmC,CAAA;AACnE,OAAO,iBAAiB,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACjH,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AACnF,OAAO,EAAE,iCAAiC,EAAE,kCAAkC,EAAE,gCAAgC,EAAE,sCAAsC,EAAE,MAAM,gCAAgC,CAAA;AAChM,OAAO,EAAE,gCAAgC,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,MAAM,+BAA+B,CAAA;AAE3L,YAAY,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,YAAY,EACR,wBAAwB,EACxB,uBAAuB,GAC1B,MAAM,iCAAiC,CAAA;AACxC,YAAY,EACR,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,wBAAwB,GAC3B,MAAM,kCAAkC,CAAA;AACzC,YAAY,EACR,0BAA0B,EAC1B,yBAAyB,GAC5B,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACxE,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,YAAY,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAEH,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,SAAS,EAET,SAAS,EAET,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EAEzB,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,qCAAqC,EACrC,gCAAgC,EAChC,iCAAiC,EACjC,kCAAkC,EAClC,sCAAsC,EACtC,kBAAkB,EAClB,YAAY,GACf,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/methods/images.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/methods/images.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,10 @@ export interface ImageCompareOptions {
44
44
  isAndroid: boolean;
45
45
  /** If this is a native web screenshot */
46
46
  isAndroidNativeWebScreenshot: boolean;
47
+ /** If this is a hybrid (native + webview) app; enables status bar fallback in webview when overlay reports zero */
48
+ isHybridApp?: boolean;
49
+ /** Platform version from the device (e.g. "14.0" for Android API 14); used for Android status bar fallback lookup */
50
+ platformVersion?: string;
47
51
  }
48
52
  export interface WicImageCompareOptions extends BaseImageCompareOptions, BaseMobileBlockOutOptions {
49
53
  /** Create a json file with the diff data, this can be used to create a custom report. */
@@ -1 +1 @@
1
- {"version":3,"file":"images.interfaces.d.ts","sourceRoot":"","sources":["../../src/methods/images.interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"images.interfaces.d.ts","sourceRoot":"","sources":["../../src/methods/images.interfaces.ts"],"names":[],"mappings":"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"}
@@ -231,8 +231,8 @@ export async function makeCroppedBase64Image({ addIOSBezelCorners, base64Image,
231
231
  */
232
232
  export async function executeImageCompare({ isViewPortScreenshot, isNativeContext, options, testContext, actualBase64Image, }) {
233
233
  // 1. Set some variables
234
- const { devicePixelRatio, deviceRectangles, ignoreRegions = [], isAndroidNativeWebScreenshot, isAndroid, fileName, } = options;
235
- const { actualFolder, autoSaveBaseline, alwaysSaveActualImage, baselineFolder, browserName, deviceName, diffFolder, isMobile, savePerInstance } = options.folderOptions;
234
+ const { devicePixelRatio, deviceRectangles, ignoreRegions = [], isAndroidNativeWebScreenshot, isAndroid, fileName, folderOptions, } = options;
235
+ const { actualFolder, autoSaveBaseline, alwaysSaveActualImage, baselineFolder, browserName, deviceName, diffFolder, isMobile, savePerInstance, } = folderOptions;
236
236
  const imageCompareOptions = { ...options.compareOptions.wic, ...options.compareOptions.method };
237
237
  // 1a. Disable JSON reports if alwaysSaveActualImage is false (JSON reports need the actual file to exist)
238
238
  if (!alwaysSaveActualImage && imageCompareOptions.createJsonReportFiles) {
@@ -299,6 +299,8 @@ export async function executeImageCompare({ isViewPortScreenshot, isNativeContex
299
299
  blockOutStatusBar: imageCompareOptions.blockOutStatusBar,
300
300
  blockOutToolBar: imageCompareOptions.blockOutToolBar,
301
301
  },
302
+ isHybridApp: options.isHybridApp,
303
+ platformVersion: options.platformVersion,
302
304
  actualFilePath: isViewPortScreenshot ? undefined : actualFilePath,
303
305
  });
304
306
  const compareOptions = {
@@ -1,4 +1,4 @@
1
- import type { DetermineDeviceBlockOutsOptions, DeviceRectangles, ElementRectangles, PrepareIgnoreRectanglesOptions, PreparedIgnoreRectangles, RectanglesOutput, ScreenRectanglesOptions, SplitIgnores, StatusAddressToolBarRectangles, StatusAddressToolBarRectanglesOptions } from './rectangles.interfaces.js';
1
+ import type { DetermineDeviceBlockOutsOptions, DetermineWebFullPageIgnoreRegionsOptions, DetermineWebScreenIgnoreRegionsOptions, DetermineWebElementIgnoreRegionsOptions, DeviceRectangles, ElementRectangles, PrepareIgnoreRectanglesOptions, PreparedIgnoreRectangles, RectanglesOutput, ScreenRectanglesOptions, SplitIgnores, StatusAddressToolBarRectangles, StatusAddressToolBarRectanglesOptions } from './rectangles.interfaces.js';
2
2
  import type { ElementIgnore } from 'src/commands/element.interfaces.js';
3
3
  /**
4
4
  * Determine the element rectangles on the page / screenshot
@@ -39,7 +39,38 @@ export declare function getRegionsFromElements(browserInstance: WebdriverIO.Brow
39
39
  /**
40
40
  * Translate ignores to regions
41
41
  */
42
- export declare function determineIgnoreRegions(browserInstance: WebdriverIO.Browser, ignores: ElementIgnore[]): Promise<RectanglesOutput[]>;
42
+ export declare function determineIgnoreRegions(browserInstance: WebdriverIO.Browser, ignores: (ElementIgnore | ElementIgnore[])[]): Promise<RectanglesOutput[]>;
43
+ /**
44
+ * Translate ignores to regions for web screen (viewport) screenshots.
45
+ * Uses getBoundingClientRect (CSS pixels) and converts to device pixels,
46
+ * accounting for the viewport offset on native web screenshot devices.
47
+ *
48
+ * Coordinate systems per platform:
49
+ * - Desktop / Android ChromeDriver: screenshot is viewport-only, BCR × DPR
50
+ * - iOS: full-device screenshot, viewport offset is in CSS points → (BCR + offset) × DPR
51
+ * - Android native web: full-device screenshot, viewport offset is already in
52
+ * device pixels (injectWebviewOverlay pre-scales by DPR) → BCR × DPR + offset
53
+ */
54
+ export declare function determineWebScreenIgnoreRegions(options: DetermineWebScreenIgnoreRegionsOptions, ignores: (ElementIgnore | ElementIgnore[])[]): Promise<RectanglesOutput[]>;
55
+ /**
56
+ * Translate ignores to regions for web full-page screenshots (desktop and mobile).
57
+ * Full-page image (BiDi or scroll-and-stitch) is in document coordinates: (0,0) = top-left
58
+ * of document, device pixels. Uses getBoundingClientRect + (scrollX, scrollY) for elements,
59
+ * then converts to device pixels. Same logic for all platforms; no viewport offset needed
60
+ * because the stitched canvas is built in document space.
61
+ */
62
+ export declare function determineWebFullPageIgnoreRegions(options: DetermineWebFullPageIgnoreRegionsOptions, ignores: (ElementIgnore | ElementIgnore[])[]): Promise<RectanglesOutput[]>;
63
+ /**
64
+ * Translate ignores to regions for web element screenshots.
65
+ * By default regions are in *element-local* device pixels so they match the cropped element image
66
+ * (BiDi clip or fallback full-screenshot crop, both at device pixel size).
67
+ * Exception: when the element screenshot is from the native driver on Android native web
68
+ * (isWebDriverElementScreenshot && isAndroidNativeWebScreenshot), the driver returns an image at
69
+ * CSS pixel size (downscaled). We then output regions in CSS pixel coordinates (divide by DPR)
70
+ * so they align with that image. Fallback (full screenshot + crop) is at device size, so we do
71
+ * not downscale when fallback was used.
72
+ */
73
+ export declare function determineWebElementIgnoreRegions(options: DetermineWebElementIgnoreRegionsOptions, ignores: (ElementIgnore | ElementIgnore[])[]): Promise<RectanglesOutput[]>;
43
74
  /**
44
75
  * Determine the device block outs
45
76
  */