vasu-playwright-utils 0.5.2 → 0.5.3

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.
@@ -97,4 +97,5 @@ export declare function isElementHidden(input: string | Locator, options?: Timeo
97
97
  * @returns {Promise<boolean>} - True if the Locator is checked, false otherwise.
98
98
  */
99
99
  export declare function isElementChecked(input: string | Locator, options?: TimeoutOption): Promise<boolean>;
100
+ export declare function waitForElementToBeStable(input: string | Locator, options?: TimeoutOption): Promise<boolean>;
100
101
  //# sourceMappingURL=element-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element-utils.d.ts","sourceRoot":"","sources":["../../../src/vasu-playwright-lib/utils/element-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAKrF;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/F;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAGjF;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrG;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAGhH;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,GAAG,OAAO,EACvB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAGxB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,iBAAyC,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhG;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvG;AAED;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAW1G;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAezG;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAexG;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CASzG"}
1
+ {"version":3,"file":"element-utils.d.ts","sourceRoot":"","sources":["../../../src/vasu-playwright-lib/utils/element-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAOrF;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/F;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAGjF;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrG;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAGhH;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,GAAG,OAAO,EACvB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAGxB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,iBAAyC,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhG;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvG;AAED;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAW1G;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAezG;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAexG;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CASzG;AAED,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAsCjH"}
@@ -6,12 +6,14 @@
6
6
  * interacting with elements, making it easier to perform common tasks and checks on web elements.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.isElementChecked = exports.isElementHidden = exports.isElementVisible = exports.isElementAttached = exports.getLocatorCount = exports.getURL = exports.saveStorageState = exports.getAttribute = exports.getAllInputValues = exports.getInputValue = exports.getAllTexts = exports.getText = void 0;
9
+ exports.waitForElementToBeStable = exports.isElementChecked = exports.isElementHidden = exports.isElementVisible = exports.isElementAttached = exports.getLocatorCount = exports.getURL = exports.saveStorageState = exports.getAttribute = exports.getAllInputValues = exports.getInputValue = exports.getAllTexts = exports.getText = void 0;
10
10
  const tslib_1 = require("tslib");
11
11
  const page_utils_1 = require("./page-utils");
12
12
  const locator_utils_1 = require("./locator-utils");
13
13
  const timeouts_1 = require("../constants/timeouts");
14
14
  const action_utils_1 = require("./action-utils");
15
+ const setup_1 = require("../setup");
16
+ const test_1 = require("@playwright/test");
15
17
  /**
16
18
  * 1. Retreiving Data: Use these functions to retrieve text, values, and counts from web elements.
17
19
  * These functions can also be used in conditional statements to check the state of web elements.
@@ -229,4 +231,41 @@ function isElementChecked(input, options) {
229
231
  });
230
232
  }
231
233
  exports.isElementChecked = isElementChecked;
234
+ function waitForElementToBeStable(input, options) {
235
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
236
+ let result = false;
237
+ yield test_1.test.step('waitForElementToBeStable', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
238
+ const locator = (0, locator_utils_1.getLocator)(input);
239
+ const maxWaitTime = (options === null || options === void 0 ? void 0 : options.timeout) || timeouts_1.SMALL_TIMEOUT;
240
+ let stableCounter = 0;
241
+ const initialBoundingBox = yield locator.boundingBox();
242
+ let lastX = (initialBoundingBox === null || initialBoundingBox === void 0 ? void 0 : initialBoundingBox.x) || null;
243
+ let lastY = (initialBoundingBox === null || initialBoundingBox === void 0 ? void 0 : initialBoundingBox.y) || null;
244
+ const startTime = Date.now();
245
+ yield (0, action_utils_1.wait)(200);
246
+ while (Date.now() - startTime < maxWaitTime) {
247
+ const { x, y } = (yield locator.boundingBox()) || { x: null, y: null };
248
+ if (x === lastX && y === lastY) {
249
+ stableCounter++;
250
+ if (stableCounter >= 3) {
251
+ result = true;
252
+ break;
253
+ }
254
+ yield (0, action_utils_1.wait)(100);
255
+ }
256
+ else {
257
+ // stableCounter = 0;
258
+ yield (0, action_utils_1.wait)(200);
259
+ }
260
+ lastX = x;
261
+ lastY = y;
262
+ }
263
+ if (!result) {
264
+ setup_1.logger.error('Max wait time exceeded. Element is not stable.');
265
+ }
266
+ }));
267
+ return result;
268
+ });
269
+ }
270
+ exports.waitForElementToBeStable = waitForElementToBeStable;
232
271
  //# sourceMappingURL=element-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element-utils.js","sourceRoot":"","sources":["../../../src/vasu-playwright-lib/utils/element-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element-utils.js","sourceRoot":"","sources":["../../../src/vasu-playwright-lib/utils/element-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vasu-playwright-utils",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "Playwright Typescript Library with reusable utilities",
5
5
  "main": "./dist/vasu-playwright-lib/index.js",
6
6
  "types": "./dist/vasu-playwright-lib/index.d.ts",
@@ -10,7 +10,9 @@ import { getPage } from './page-utils';
10
10
  import { NavigationOptions, TimeoutOption } from '../types/optional-parameter-types';
11
11
  import { getAllLocators, getLocator } from './locator-utils';
12
12
  import { INSTANT_TIMEOUT, SMALL_TIMEOUT } from '../constants/timeouts';
13
- import { waitForPageLoadState } from './action-utils';
13
+ import { wait, waitForPageLoadState } from './action-utils';
14
+ import { logger } from '../setup';
15
+ import { test } from '@playwright/test';
14
16
 
15
17
  /**
16
18
  * 1. Retreiving Data: Use these functions to retrieve text, values, and counts from web elements.
@@ -205,3 +207,43 @@ export async function isElementChecked(input: string | Locator, options?: Timeou
205
207
  }
206
208
  return false;
207
209
  }
210
+
211
+ export async function waitForElementToBeStable(input: string | Locator, options?: TimeoutOption): Promise<boolean> {
212
+ let result = false;
213
+ await test.step('waitForElementToBeStable', async () => {
214
+ const locator = getLocator(input);
215
+ const maxWaitTime = options?.timeout || SMALL_TIMEOUT;
216
+ let stableCounter = 0;
217
+
218
+ const initialBoundingBox = await locator.boundingBox();
219
+ let lastX: number | null = initialBoundingBox?.x || null;
220
+ let lastY: number | null = initialBoundingBox?.y || null;
221
+
222
+ const startTime = Date.now();
223
+ await wait(200);
224
+
225
+ while (Date.now() - startTime < maxWaitTime) {
226
+ const { x, y } = (await locator.boundingBox()) || { x: null, y: null };
227
+
228
+ if (x === lastX && y === lastY) {
229
+ stableCounter++;
230
+ if (stableCounter >= 3) {
231
+ result = true;
232
+ break;
233
+ }
234
+ await wait(100);
235
+ } else {
236
+ // stableCounter = 0;
237
+ await wait(200);
238
+ }
239
+
240
+ lastX = x;
241
+ lastY = y;
242
+ }
243
+
244
+ if (!result) {
245
+ logger.error('Max wait time exceeded. Element is not stable.');
246
+ }
247
+ });
248
+ return result;
249
+ }