automation_model 1.0.77 → 1.0.90

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.
@@ -3,7 +3,7 @@ type Cookie = {
3
3
  value: string;
4
4
  domain?: string;
5
5
  path?: string;
6
- expires?: number;
6
+ expires?: number | string;
7
7
  httpOnly?: boolean;
8
8
  secure?: boolean;
9
9
  sameSite?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/environment.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW;IAGf,YAAmB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAFnC,YAAO,GAAY,EAAE,CAAA;QACrB,YAAO,GAAgD,EAAE,CAAA;IAEzD,CAAC;IACD,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACrB,CAAC;CACF;AACD,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/environment.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW;IAGf,YAAmB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAFnC,YAAO,GAAa,EAAE,CAAC;QACvB,YAAO,GAAqD,EAAE,CAAC;IACzB,CAAC;IACvC,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACrB,CAAC;CACF;AACD,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -10,6 +10,14 @@ const getContext = async function (environment, headless = false, logger) {
10
10
  environment = initEnvironment();
11
11
  }
12
12
  const { cookies, origins } = environment;
13
+ if (cookies) {
14
+ for (let i = 0; i < cookies.length; i++) {
15
+ const cookie = cookies[i];
16
+ if (cookie.expires === "undefined") {
17
+ delete cookie.expires;
18
+ }
19
+ }
20
+ }
13
21
  const storageState = { cookies, origins };
14
22
  let browser = await browserManager.getBrowser(headless, storageState);
15
23
  let context = new TestContext();
@@ -1 +1 @@
1
- {"version":3,"file":"init_browser.js","sourceRoot":"","sources":["../../src/init_browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,0BAA0B;AAE1B,yEAAyE;AACzE,MAAM,UAAU,GAAG,KAAK,WAAW,WAA6B,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAa;IAC/F,IAAI,WAAW,KAAK,IAAI,EAAE;QACxB,WAAW,GAAG,eAAe,EAAE,CAAC;KACjC;IACD,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,WAAW,CAAC;IACvC,MAAM,YAAY,GAAG,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC;IACxC,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtE,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAChC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAClC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IACtC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5B,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IAElC,OAAO,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,OAAQ,EAAE,OAAO,CAAC,IAAK,EAAE,MAAM,CAAC,CAAC;IAC5E,+BAA+B;IAC/B,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF,kDAAkD;AAClD,uCAAuC;AACvC,0BAA0B;AAC1B,qEAAqE;AACrE,uDAAuD;AACvD,+DAA+D;AAC/D,iCAAiC;AACjC,UAAU;AACV,8BAA8B;AAC9B,QAAQ;AACR,qDAAqD;AACrD,MAAM;AACN,KAAK;AAEL,MAAM,YAAY,GAAG,KAAK,WAAW,OAAmC;IACtE,MAAM,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,8BAA8B;IAC5B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,IAAI;QACF,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACjD,4BAA4B;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,sCAAsC;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACtC,kCAAkC;QAClC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;KACjD;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;KAC9C;IACH,IAAI;IACJ,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"init_browser.js","sourceRoot":"","sources":["../../src/init_browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,0BAA0B;AAE1B,yEAAyE;AACzE,MAAM,UAAU,GAAG,KAAK,WAAW,WAA+B,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAa;IACjG,IAAI,WAAW,KAAK,IAAI,EAAE;QACxB,WAAW,GAAG,eAAe,EAAE,CAAC;KACjC;IACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IACzC,IAAI,OAAO,EAAE;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE;gBAClC,OAAO,MAAM,CAAC,OAAO,CAAC;aACvB;SACF;KACF;IACD,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC1C,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtE,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAChC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAClC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IACtC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5B,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IAElC,OAAO,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,OAAQ,EAAE,OAAO,CAAC,IAAK,EAAE,MAAM,CAAC,CAAC;IAC5E,+BAA+B;IAC/B,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF,kDAAkD;AAClD,uCAAuC;AACvC,0BAA0B;AAC1B,qEAAqE;AACrE,uDAAuD;AACvD,+DAA+D;AAC/D,iCAAiC;AACjC,UAAU;AACV,8BAA8B;AAC9B,QAAQ;AACR,qDAAqD;AACrD,MAAM;AACN,KAAK;AAEL,MAAM,YAAY,GAAG,KAAK,WAAW,OAAqC;IACxE,MAAM,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,8BAA8B;IAC9B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,IAAI;QACF,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACjD,4BAA4B;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,sCAAsC;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACtC,kCAAkC;QAClC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;KACjD;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;KAC9C;IACD,IAAI;IACJ,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
@@ -7,29 +7,20 @@ declare class StableBrowser {
7
7
  constructor(browser: Browser, page: Page, logger?: any);
8
8
  goto(url: string): Promise<void>;
9
9
  _fixUsingParams(text: any, _params: Params): any;
10
- _getLocator(locator: any, scope: any, _params: Params): any;
10
+ _getLocator(locator: any, scope: any, _params: Params, exact?: boolean): any;
11
11
  _locateElementByText(scope: any, text1: any, tag1: any, regex: boolean | undefined, _params: Params): Promise<any>;
12
- _collectLocatorInformation(selectorHierarchy: any, index: number | undefined, scope: any, foundLocators: any, _params: Params): Promise<void>;
12
+ _collectLocatorInformation(selectorHierarchy: any, index: number | undefined, scope: any, foundLocators: any, _params: Params, exact?: boolean): Promise<void>;
13
13
  _locate(selectors: any, info: any, _params?: Params, timeout?: number): Promise<any>;
14
- click(selector: any, _params?: Params, options?: {}, world?: null): Promise<{} | undefined>;
15
- selectOption(selector: any, values: any, _params?: null, options?: {}, world?: null): Promise<{} | undefined>;
16
- fill(selector: any, value: any, enter?: boolean, _params?: null, options?: {}, world?: null): Promise<{} | undefined>;
14
+ click(selector: any, _params?: Params, options?: {}, world?: null): Promise<{}>;
15
+ selectOption(selector: any, values: any, _params?: null, options?: {}, world?: null): Promise<{}>;
16
+ fill(selector: any, value: any, enter?: boolean, _params?: null, options?: {}, world?: null): Promise<{}>;
17
17
  getText(selector: any, _params?: null, options?: {}, info?: {}, world?: null): Promise<any>;
18
- containsPattern(selector: any, pattern: any, text: any, _params?: null, options?: {}, world?: null): Promise<{} | undefined>;
19
- containsText(selector: any, text: any, _params?: null, options?: {}, world?: null): Promise<{} | undefined>;
20
- _screenShot(options?: {}, world?: null): Promise<string | undefined>;
21
- verifyElementExistInPage(selector: any, _params?: null, options?: {}, world?: null): Promise<{} | undefined>;
22
- analyzeTable(selector: any, query: any, operator: any, value: any, _params?: null, options?: {}, world?: null): Promise<{} | undefined>;
18
+ containsPattern(selector: any, pattern: any, text: any, _params?: null, options?: {}, world?: null): Promise<{}>;
19
+ containsText(selector: any, text: any, _params?: null, options?: {}, world?: null): Promise<{}>;
20
+ _screenShot(options?: {}, world?: null): Promise<void>;
21
+ verifyElementExistInPage(selector: any, _params?: null, options?: {}, world?: null): Promise<{}>;
22
+ analyzeTable(selector: any, query: any, operator: any, value: any, _params?: null, options?: {}, world?: null): Promise<{}>;
23
23
  waitForPageLoad(options?: {}, world?: null): Promise<void>;
24
- _reportToWorld(world: any, properties: JsonCommandReport): void;
24
+ _reportToWorld(world: any, properties?: {}): void;
25
25
  }
26
- type JsonCommandReport = {
27
- type: string;
28
- value?: string;
29
- startTime: number;
30
- endTime: number;
31
- screenshotPath?: string;
32
- message?: string;
33
- result: "PASSED" | "FAILED";
34
- };
35
26
  export { StableBrowser };
@@ -31,7 +31,7 @@ class StableBrowser {
31
31
  }
32
32
  return text;
33
33
  }
34
- _getLocator(locator, scope, _params) {
34
+ _getLocator(locator, scope, _params, exact = false) {
35
35
  if (locator.role) {
36
36
  if (locator.role[1].nameReg) {
37
37
  locator.role[1].name = reg_parser(locator.role[1].nameReg);
@@ -40,6 +40,9 @@ class StableBrowser {
40
40
  if (locator.role[1].name) {
41
41
  locator.role[1].name = this._fixUsingParams(locator.role[1].name, _params);
42
42
  }
43
+ if (exact) {
44
+ locator.role[1].exact = true;
45
+ }
43
46
  return scope.getByRole(locator.role[0], locator.role[1]);
44
47
  }
45
48
  if (locator.css) {
@@ -60,10 +63,37 @@ class StableBrowser {
60
63
  }
61
64
  return false;
62
65
  }
66
+ document.isParent = isParent;
67
+ function collectAllShadowDomElements(element, result = []) {
68
+ // Check and add the element if it has a shadow root
69
+ if (element.shadowRoot) {
70
+ result.push(element);
71
+ // Also search within the shadow root
72
+ document.collectAllShadowDomElements(element.shadowRoot, result);
73
+ }
74
+ // Iterate over child nodes
75
+ element.childNodes.forEach((child) => {
76
+ // Recursively call the function for each child node
77
+ document.collectAllShadowDomElements(child, result);
78
+ });
79
+ return result;
80
+ }
81
+ document.collectAllShadowDomElements = collectAllShadowDomElements;
63
82
  if (!tag) {
64
83
  tag = "*";
65
84
  }
66
85
  let elements = Array.from(document.querySelectorAll(tag));
86
+ let shadowHosts = [];
87
+ document.collectAllShadowDomElements(document, shadowHosts);
88
+ for (let i = 0; i < shadowHosts.length; i++) {
89
+ let shadowElement = shadowHosts[i].shadowElement;
90
+ if (!shadowElement) {
91
+ console.log("shadowElement is null, for host " + shadowHosts[i]);
92
+ continue;
93
+ }
94
+ let shadowElements = Array.from(shadowElement.querySelectorAll(tag));
95
+ elements = elements.concat(shadowElements);
96
+ }
67
97
  let randomToken = null;
68
98
  text = text.trim();
69
99
  const foundElements = [];
@@ -104,13 +134,13 @@ class StableBrowser {
104
134
  return { elementCount: elementCount, randomToken: randomToken };
105
135
  }, [text1, tag1]);
106
136
  }
107
- async _collectLocatorInformation(selectorHierarchy, index = 0, scope, foundLocators, _params) {
108
- if (index === selectorHierarchy.length) {
109
- return;
110
- }
111
- if (selectorHierarchy.length !== 1) {
112
- this.logger.info("only single selector hierarchy supported, will use first selector");
113
- }
137
+ async _collectLocatorInformation(selectorHierarchy, index = 0, scope, foundLocators, _params, exact = false) {
138
+ // if (index === selectorHierarchy.length) {
139
+ // return;
140
+ // }
141
+ // if (selectorHierarchy.length !== 1) {
142
+ // this.logger.info("only single selector hierarchy supported, will use first selector");
143
+ // }
114
144
  let locatorSearch = selectorHierarchy[index];
115
145
  let locator = null;
116
146
  if (locatorSearch.text) {
@@ -118,19 +148,17 @@ class StableBrowser {
118
148
  if (result.elementCount === 0) {
119
149
  return;
120
150
  }
121
- locatorSearch.css =
122
- "[data-blinq-id='blinq-id-" + result.randomToken + "']";
123
- locator = this._getLocator(locatorSearch, scope, _params);
151
+ locatorSearch.css = "[data-blinq-id='blinq-id-" + result.randomToken + "']";
152
+ locator = this._getLocator(locatorSearch, scope, _params, exact);
124
153
  }
125
154
  else {
126
- locator = this._getLocator(locatorSearch, scope, _params);
155
+ locator = this._getLocator(locatorSearch, scope, _params, exact);
127
156
  }
128
157
  let count = await locator.count();
129
158
  //let visibleCount = 0;
130
159
  let visibleLocator = null;
131
160
  for (let j = 0; j < count; j++) {
132
- if ((await locator.nth(j).isVisible()) &&
133
- (await locator.nth(j).isEnabled())) {
161
+ if ((await locator.nth(j).isVisible()) && (await locator.nth(j).isEnabled())) {
134
162
  //visibleCount++;
135
163
  // if (index === selectorHierarchy.length - 1) {
136
164
  foundLocators.push(locator.nth(j));
@@ -144,29 +172,112 @@ class StableBrowser {
144
172
  let locatorsByPriority = [];
145
173
  let startTime = performance.now();
146
174
  let locatorsCount = 0;
175
+ let arrayMode = Array.isArray(selectors);
176
+ let scope = this.page;
177
+ if (!arrayMode && selectors.iframe_src) {
178
+ while (true) {
179
+ scope = this.page.frame({ url: selectors.iframe_src });
180
+ if (!scope) {
181
+ info.log.push("unable to locate iframe " + selectors.iframe_src);
182
+ if (performance.now() - startTime > timeout) {
183
+ throw new Error("unable to locate iframe " + selectors.iframe_src);
184
+ }
185
+ await new Promise((resolve) => setTimeout(resolve, 1000));
186
+ }
187
+ else {
188
+ break;
189
+ }
190
+ }
191
+ }
192
+ let selectorsLocators = null;
193
+ if (!arrayMode) {
194
+ selectorsLocators = selectors.locators;
195
+ }
196
+ else {
197
+ selectorsLocators = [];
198
+ for (let i = 0; i < selectors.length; i++) {
199
+ selectorsLocators.push(selectors[i][0]);
200
+ }
201
+ }
202
+ let exact = false;
147
203
  while (true) {
148
204
  locatorsCount = 0;
149
- for (let i = 0; i < selectors.length; i++) {
150
- let selectorList = selectors[i];
205
+ let selectorIndex = 0;
206
+ // check for iframe section
207
+ const foundElements = [];
208
+ for (let i = 0; i < selectorsLocators.length; i++) {
151
209
  let foundLocators = [];
152
210
  try {
153
- await this._collectLocatorInformation(selectorList, 0, this.page, foundLocators, _params);
211
+ await this._collectLocatorInformation(selectorsLocators, i, scope, foundLocators, _params, exact);
154
212
  }
155
213
  catch (e) {
214
+ this.logger.error("unable to use locator " + JSON.stringify(selectorsLocators[i]));
156
215
  foundLocators = [];
157
- await this._collectLocatorInformation(selectorList, 0, this.page, foundLocators, _params);
216
+ try {
217
+ await this._collectLocatorInformation(selectorsLocators, i, this.page, foundLocators, _params, exact);
218
+ }
219
+ catch (e) {
220
+ this.logger.error("unable to use locator (second try) " + JSON.stringify(selectorsLocators[i]));
221
+ }
158
222
  }
159
- info.log.push("total elements found " + foundLocators.length);
160
223
  if (foundLocators.length === 1) {
161
- info.log.push("found unique element");
162
- info.box = await foundLocators[0].boundingBox();
163
- return foundLocators[0];
224
+ foundElements.push({ locator: foundLocators[0], box: await foundLocators[0].boundingBox(), unique: true });
225
+ }
226
+ else if (foundLocators.length > 1) {
227
+ exact = true;
228
+ // for (let j = 0; j < foundLocators.length; j++) {
229
+ // console.log("found locators " + JSON.stringify(await foundLocators[j].boundingBox()));
230
+ // // foundElements.push({ locator: foundLocators[j], box: await foundLocators[j].boundingBox(), unique: false });
231
+ // }
164
232
  }
165
- locatorsByPriority.push(foundLocators);
166
- locatorsCount += foundLocators.length;
167
233
  }
168
- if (locatorsCount > 0) {
169
- break;
234
+ // } catch (e) {
235
+ // let foundUnique = false;
236
+ // for (let i = 0; i < foundElements.length; i++) {
237
+ // let element = foundElements[i];
238
+ // if (element.unique) {
239
+ // foundUnique = true;
240
+ // break;
241
+ // }
242
+ // }
243
+ // if (!foundUnique) {
244
+ // info.log.push("unable to locate element " + e.message);
245
+ // }
246
+ // }
247
+ if (foundElements.length === 1 && foundElements[0].unique) {
248
+ info.box = foundElements[0].box;
249
+ return foundElements[0].locator;
250
+ }
251
+ info.log.push("total elements found " + foundElements.length);
252
+ if (foundElements.length > 1) {
253
+ let electionResult = {};
254
+ for (let i = 0; i < foundElements.length; i++) {
255
+ let element = foundElements[i];
256
+ if (!electionResult[element.box]) {
257
+ electionResult[element.box] = {
258
+ locator: element.locator,
259
+ count: 1,
260
+ };
261
+ }
262
+ else {
263
+ electionResult[element.box].count++;
264
+ }
265
+ }
266
+ let maxCountElement = null;
267
+ for (let key in electionResult) {
268
+ if (!maxCountElement) {
269
+ maxCountElement = electionResult[key];
270
+ }
271
+ else {
272
+ if (maxCountElement.count < electionResult[key].count) {
273
+ maxCountElement = electionResult[key];
274
+ }
275
+ }
276
+ }
277
+ if (maxCountElement) {
278
+ info.box = await maxCountElement.locator.boundingBox();
279
+ return maxCountElement.locator;
280
+ }
170
281
  }
171
282
  if (performance.now() - startTime > timeout) {
172
283
  break;
@@ -175,91 +286,59 @@ class StableBrowser {
175
286
  }
176
287
  this.logger.debug("unable to locate unique element, total elements found " + locatorsCount);
177
288
  info.log.push("failed to locate unique element, total elements found " + locatorsCount);
178
- for (let i = 0; i < locatorsByPriority.length; i++) {
179
- let locators = locatorsByPriority[i];
180
- if (locators.length > 0) {
181
- info.box = await locators[0].boundingBox();
182
- return locators[0];
183
- }
184
- }
185
- throw new Error("failed to locate first element no elements found, " +
186
- JSON.stringify(info));
289
+ // for (let i = 0; i < locatorsByPriority.length; i++) {
290
+ // let locators = locatorsByPriority[i];
291
+ // if (locators.length > 0) {
292
+ // info.box = await locators[0].boundingBox();
293
+ // return locators[0];
294
+ // }
295
+ // }
296
+ throw new Error("failed to locate first element no elements found, " + JSON.stringify(info));
187
297
  }
188
298
  async click(selector, _params, options = {}, world = null) {
189
- const startTime = performance.now();
190
- let error = null;
191
- let screenshotPath = null;
192
299
  const info = {};
193
300
  info.log = [];
194
301
  info.operation = "click";
195
302
  info.selector = selector;
196
- // this._reportToWorld(world, {
197
- // command: "click",
198
- // params: _params,
199
- // selector: selector,
200
- // });
303
+ this._reportToWorld(world, { command: "click", params: _params, selector: selector });
201
304
  try {
202
305
  let element = await this._locate(selector, info, _params);
203
- screenshotPath = await this._screenShot(options, world);
306
+ await this._screenShot(options, world);
204
307
  try {
205
308
  await element.click({ timeout: 5000 });
206
309
  }
207
310
  catch (e) {
208
311
  info.log.push("click failed, will try force click");
209
- // this._reportToWorld(world, {
210
- // message: "click failed, will try force click",
211
- // });
312
+ this._reportToWorld(world, { message: "click failed, will try force click" });
212
313
  await element.click({ timeout: 10000, force: true });
213
314
  }
214
- // this._reportToWorld(world, { result: "success", info: info });
315
+ this._reportToWorld(world, { result: "success", info: info });
215
316
  await this.waitForPageLoad();
216
317
  return info;
217
318
  }
218
319
  catch (e) {
219
320
  this.logger.error("click failed " + JSON.stringify(info));
220
- // this._reportToWorld(world, { result: "failed", info: info, error: e });
321
+ this._reportToWorld(world, { result: "failed", info: info, error: e });
221
322
  Object.assign(e, { info: info });
222
- screenshotPath = await this._screenShot(options, world);
223
- // throw e;
224
- error = e;
225
- }
226
- finally {
227
- const endTime = performance.now();
228
- this._reportToWorld(world, {
229
- command: "click",
230
- screenshotPath,
231
- result: error ? "failed" : "success",
232
- message: error === null || error === void 0 ? void 0 : error.message,
233
- startTime,
234
- endTime,
235
- });
323
+ await this._screenShot(options, world);
324
+ throw e;
236
325
  }
237
326
  }
238
327
  async selectOption(selector, values, _params = null, options = {}, world = null) {
239
- const startTime = performance.now();
240
- let error = null;
241
- let screenshotPath = null;
242
328
  const info = {};
243
329
  info.log = [];
244
330
  info.operation = "selectOptions";
245
331
  info.selector = selector;
246
- // this._reportToWorld(world, {
247
- // command: "select",
248
- // values,
249
- // params: _params,
250
- // selector: selector,
251
- // });
332
+ this._reportToWorld(world, { command: "select", values, params: _params, selector: selector });
252
333
  try {
253
334
  let element = await this._locate(selector, info, _params);
254
- screenshotPath = await this._screenShot(options, world);
335
+ await this._screenShot(options, world);
255
336
  try {
256
337
  await element.selectOption(values, { timeout: 5000 });
257
338
  }
258
339
  catch (e) {
259
340
  info.log.push("selectOption failed, will try force");
260
- // this._reportToWorld(world, {
261
- // message: "select failed, will try force select",
262
- // });
341
+ this._reportToWorld(world, { message: "select failed, will try force select" });
263
342
  await element.selectOption(values, { timeout: 10000, force: true });
264
343
  }
265
344
  await this.waitForPageLoad();
@@ -267,44 +346,23 @@ class StableBrowser {
267
346
  }
268
347
  catch (e) {
269
348
  this.logger.error("selectOption failed " + JSON.stringify(info));
270
- // this._reportToWorld(world, { result: "failed", info: info, error: e });
349
+ this._reportToWorld(world, { result: "failed", info: info, error: e });
271
350
  Object.assign(e, { info: info });
272
- screenshotPath = await this._screenShot(options, world);
273
- // throw e;
274
- error = e;
351
+ await this._screenShot(options, world);
352
+ throw e;
275
353
  this.logger.info("click failed, will try next selector");
276
354
  }
277
- finally {
278
- const endTime = performance.now();
279
- this._reportToWorld(world, {
280
- command: "select",
281
- screenshotPath,
282
- result: error ? "failed" : "success",
283
- message: error === null || error === void 0 ? void 0 : error.message,
284
- startTime,
285
- endTime,
286
- });
287
- }
288
355
  }
289
356
  async fill(selector, value, enter = false, _params = null, options = {}, world = null) {
290
- const startTime = performance.now();
291
- let error = null;
292
- let screenshotPath = null;
293
357
  const info = {};
294
358
  info.log = [];
295
359
  info.operation = "fill";
296
360
  info.selector = selector;
297
361
  info.value = value;
298
- // this._reportToWorld(world, {
299
- // command: "fill",
300
- // value,
301
- // enter,
302
- // params: _params,
303
- // selector: selector,
304
- // });
362
+ this._reportToWorld(world, { command: "fill", value, enter, params: _params, selector: selector });
305
363
  try {
306
364
  let element = await this._locate(selector, info, _params);
307
- screenshotPath = await this._screenShot(options, world);
365
+ await this._screenShot(options, world);
308
366
  await element.fill(value, { timeout: 10000 });
309
367
  await element.dispatchEvent("change");
310
368
  if (enter) {
@@ -315,23 +373,10 @@ class StableBrowser {
315
373
  }
316
374
  catch (e) {
317
375
  this.logger.error("fill failed " + JSON.stringify(info));
318
- // this._reportToWorld(world, { result: "failed", info: info, error: e });
376
+ this._reportToWorld(world, { result: "failed", info: info, error: e });
319
377
  Object.assign(e, { info: info });
320
- screenshotPath = await this._screenShot(options, world);
321
- // throw e;
322
- error = e;
323
- }
324
- finally {
325
- const endTime = performance.now();
326
- this._reportToWorld(world, {
327
- command: "fill",
328
- screenshotPath,
329
- value,
330
- result: error ? "failed" : "success",
331
- message: error === null || error === void 0 ? void 0 : error.message,
332
- startTime,
333
- endTime,
334
- });
378
+ await this._screenShot(options, world);
379
+ throw e;
335
380
  }
336
381
  }
337
382
  async getText(selector, _params = null, options = {}, info = {}, world = null) {
@@ -339,7 +384,7 @@ class StableBrowser {
339
384
  info.log = [];
340
385
  }
341
386
  let element = await this._locate(selector, info, _params);
342
- screenshotPath = await this._screenShot(options, world);
387
+ await this._screenShot(options, world);
343
388
  try {
344
389
  return await element.innerText();
345
390
  }
@@ -349,9 +394,6 @@ class StableBrowser {
349
394
  }
350
395
  }
351
396
  async containsPattern(selector, pattern, text, _params = null, options = {}, world = null) {
352
- const startTime = performance.now();
353
- let error = null;
354
- let screenshotPath = null;
355
397
  const info = {};
356
398
  info.log = [];
357
399
  info.operation = "containsPattern";
@@ -359,13 +401,7 @@ class StableBrowser {
359
401
  info.value = text;
360
402
  info.pattern = pattern;
361
403
  let foundText = null;
362
- // this._reportToWorld(world, {
363
- // command: "contains",
364
- // pattern,
365
- // text,
366
- // params: _params,
367
- // selector: selector,
368
- // });
404
+ this._reportToWorld(world, { command: "contains", pattern, text, params: _params, selector: selector });
369
405
  try {
370
406
  foundText = await this.getText(selector, _params, options, info, world);
371
407
  let escapedText = text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
@@ -380,28 +416,13 @@ class StableBrowser {
380
416
  catch (e) {
381
417
  this.logger.error("verify element contains text failed " + JSON.stringify(info));
382
418
  this.logger.error("found text " + foundText + " pattern " + pattern);
383
- // this._reportToWorld(world, { result: "failed", info: info, error: e });
419
+ this._reportToWorld(world, { result: "failed", info: info, error: e });
384
420
  Object.assign(e, { info: info });
385
- screenshotPath = await this._screenShot(options, world);
386
- // throw e;
387
- error = e;
388
- }
389
- finally {
390
- const endTime = performance.now();
391
- this._reportToWorld(world, {
392
- command: "containsPattern",
393
- screenshotPath,
394
- result: error ? "failed" : "success",
395
- message: error === null || error === void 0 ? void 0 : error.message,
396
- startTime,
397
- endTime,
398
- });
421
+ await this._screenShot(options, world);
422
+ throw e;
399
423
  }
400
424
  }
401
425
  async containsText(selector, text, _params = null, options = {}, world = null) {
402
- const startTime = performance.now();
403
- let error = null;
404
- let screenshotPath = null;
405
426
  const info = {};
406
427
  info.log = [];
407
428
  info.operation = "containsText";
@@ -417,22 +438,10 @@ class StableBrowser {
417
438
  }
418
439
  catch (e) {
419
440
  this.logger.error("verify element contains text failed " + JSON.stringify(info));
420
- // this._reportToWorld(world, { result: "failed", info: info, error: e });
441
+ this._reportToWorld(world, { result: "failed", info: info, error: e });
421
442
  Object.assign(e, { info: info });
422
- screenshotPath = await this._screenShot(options, world);
423
- // throw e;
424
- error = e;
425
- }
426
- finally {
427
- const endTime = performance.now();
428
- this._reportToWorld(world, {
429
- command: "containsText",
430
- screenshotPath,
431
- result: error ? "failed" : "success",
432
- message: error === null || error === void 0 ? void 0 : error.message,
433
- startTime,
434
- endTime,
435
- });
443
+ await this._screenShot(options, world);
444
+ throw e;
436
445
  }
437
446
  }
438
447
  async _screenShot(options = {}, world = null) {
@@ -446,59 +455,36 @@ class StableBrowser {
446
455
  }
447
456
  const screenshotPath = path.join(world.screenshotPath, nextIndex + ".png");
448
457
  await this.page.screenshot({ path: screenshotPath });
449
- // await world.attach(JSON.stringify({ path: screenshotPath }), {
450
- // mediaType: "application/json",
451
- // });
452
- return screenshotPath;
458
+ await world.attach(JSON.stringify({ path: screenshotPath }), {
459
+ mediaType: "application/json",
460
+ });
453
461
  }
454
- else if (options.screenshot) {
462
+ else if (options && options.screenshot) {
455
463
  await this.page.screenshot({ path: options.screenshotPath });
456
464
  }
457
465
  }
458
466
  async verifyElementExistInPage(selector, _params = null, options = {}, world = null) {
459
- const startTime = performance.now();
460
- let error = null;
461
- let screenshotPath = null;
462
467
  await new Promise((resolve) => setTimeout(resolve, 2000));
463
468
  const info = {};
464
469
  info.log = [];
465
470
  info.operation = "verify";
466
471
  info.selector = selector;
467
- // this._reportToWorld(world, {
468
- // command: "verify",
469
- // params: _params,
470
- // selector: selector,
471
- // });
472
+ this._reportToWorld(world, { command: "verify", params: _params, selector: selector });
472
473
  try {
473
474
  const element = await this._locate(selector, info, _params);
474
- screenshotPath = await this._screenShot(options, world);
475
+ await this._screenShot(options, world);
475
476
  await expect(element).toHaveCount(1, { timeout: 10000 });
476
477
  return info;
477
478
  }
478
479
  catch (e) {
479
480
  this.logger.error("verify failed " + JSON.stringify(info));
480
- // this._reportToWorld(world, { result: "failed", info: info, error: e });
481
+ this._reportToWorld(world, { result: "failed", info: info, error: e });
481
482
  Object.assign(e, { info: info });
482
- screenshotPath = await this._screenShot(options, world);
483
- // throw e;
484
- error = e;
485
- }
486
- finally {
487
- const endTime = performance.now();
488
- this._reportToWorld(world, {
489
- command: "verify",
490
- screenshotPath,
491
- result: error ? "failed" : "success",
492
- message: error === null || error === void 0 ? void 0 : error.message,
493
- startTime,
494
- endTime,
495
- });
483
+ await this._screenShot(options, world);
484
+ throw e;
496
485
  }
497
486
  }
498
487
  async analyzeTable(selector, query, operator, value, _params = null, options = {}, world = null) {
499
- const startTime = performance.now();
500
- let error = null;
501
- let screenshotPath = null;
502
488
  const info = {};
503
489
  info.log = [];
504
490
  info.operation = "analyzeTable";
@@ -508,25 +494,22 @@ class StableBrowser {
508
494
  info.query_fixed = query;
509
495
  info.operator = operator;
510
496
  info.value = value;
511
- // this._reportToWorld(world, {
512
- // command: "analyzeTable",
513
- // query,
514
- // operator,
515
- // value,
516
- // params: _params,
517
- // selector: selector,
518
- // });
497
+ this._reportToWorld(world, {
498
+ command: "analyzeTable",
499
+ query,
500
+ operator,
501
+ value,
502
+ params: _params,
503
+ selector: selector,
504
+ });
519
505
  try {
520
506
  let table = await this._locate(selector, info, _params);
521
- screenshotPath = await this._screenShot(options, world);
507
+ await this._screenShot(options, world);
522
508
  const cells = await getTableCells(this.page, table, query, info);
523
509
  if (cells.error) {
524
510
  throw new Error(cells.error);
525
511
  }
526
- if (operator === "===" ||
527
- operator === "==" ||
528
- operator === "=" ||
529
- operator === "equals") {
512
+ if (operator === "===" || operator === "==" || operator === "=" || operator === "equals") {
530
513
  if (cells.length === 0) {
531
514
  throw new Error("no cells found");
532
515
  }
@@ -536,9 +519,7 @@ class StableBrowser {
536
519
  }
537
520
  }
538
521
  }
539
- else if (operator === "!==" ||
540
- operator === "!=" ||
541
- operator === "not_equals") {
522
+ else if (operator === "!==" || operator === "!=" || operator === "not_equals") {
542
523
  if (cells.length === 0) {
543
524
  throw new Error("no cells found");
544
525
  }
@@ -603,30 +584,15 @@ class StableBrowser {
603
584
  }
604
585
  catch (e) {
605
586
  this.logger.error("analyzeTable failed " + JSON.stringify(info));
606
- // this._reportToWorld(world, { result: "failed", info: info, error: e });
587
+ this._reportToWorld(world, { result: "failed", info: info, error: e });
607
588
  Object.assign(e, { info: info });
608
- screenshotPath = await this._screenShot(options, world);
609
- // throw e;
610
- error = e;
611
- }
612
- finally {
613
- const endTime = performance.now();
614
- this._reportToWorld(world, {
615
- command: "analyzeTable",
616
- screenshotPath,
617
- result: error ? "failed" : "success",
618
- message: error === null || error === void 0 ? void 0 : error.message,
619
- startTime,
620
- endTime,
621
- });
589
+ await this._screenShot(options, world);
590
+ throw e;
622
591
  }
623
592
  }
624
593
  async waitForPageLoad(options = {}, world = null) {
625
594
  let timeout = 10000;
626
- const startTime = performance.now();
627
- let error = null;
628
- let screenshotPath = null;
629
- // this._reportToWorld(world, { command: "waitForPageLoade" });
595
+ this._reportToWorld(world, { command: "waitForPageLoade" });
630
596
  if (!configuration) {
631
597
  try {
632
598
  if (fs.existsSync("ai_config.json")) {
@@ -659,21 +625,10 @@ class StableBrowser {
659
625
  catch (e) {
660
626
  console.log("waitForPageLoad error, ignored");
661
627
  }
662
- finally {
663
- await new Promise((resolve) => setTimeout(resolve, 2000));
664
- screenshotPath = await this._screenShot(options, world);
665
- const endTime = performance.now();
666
- this._reportToWorld(world, {
667
- command: "waitForPageLoad",
668
- screenshotPath,
669
- result: error ? "failed" : "success",
670
- message: error === null || error === void 0 ? void 0 : error.message,
671
- startTime,
672
- endTime,
673
- });
674
- }
628
+ await new Promise((resolve) => setTimeout(resolve, 2000));
629
+ await this._screenShot(options, world);
675
630
  }
676
- _reportToWorld(world, properties) {
631
+ _reportToWorld(world, properties = {}) {
677
632
  if (!world || !world.attach) {
678
633
  return;
679
634
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stable_browser.js","sourceRoot":"","sources":["../../src/stable_browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stable_browser.js","sourceRoot":"","sources":["../../src/stable_browser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "automation_model",
3
- "version": "1.0.77",
3
+ "version": "1.0.90",
4
4
  "description": "An automation infrastructure module to be use for generative AI automation projects.",
5
5
  "main": "lib/index.js",
6
6
  "type": "module",
@@ -13,20 +13,20 @@
13
13
  "pack": "mkdir build && mkdir build/bin && cp ./src/auto_page.js ./build/bin/auto_page.js && cp ./src/environment.js ./build/bin/environment.js && cp ./src/browser_manager.js ./build/bin/browser_manager.js && cp ./src/test_context.js ./build/bin/test_context.js && cp ./src/init_browser.js ./build/bin/init_browser.js && cp ./src/stable_browser.js ./build/bin/stable_browser.js && cp ./package.json ./build/package.json",
14
14
  "clean": "rimraf -g build && rimraf -g types",
15
15
  "build": "npm run clean && npm run compile && ncp package.json build/package.json",
16
- "test": "node tests/debug.test.js",
16
+ "test": "node tests/launch_page.test.js",
17
17
  "types": "tsc --declaration --allowJs --emitDeclarationOnly --outDir types"
18
18
  },
19
19
  "author": "",
20
20
  "license": "ISC",
21
21
  "dependencies": {
22
22
  "playwright": "^1.39.0",
23
+ "@playwright/test": "^1.40.0",
23
24
  "regex-parser": "^2.2.11"
24
25
  },
25
26
  "devDependencies": {
26
- "@playwright/test": "^1.40.0",
27
27
  "@types/node": "^20.9.3",
28
28
  "ncp": "^2.0.0",
29
29
  "rimraf": "^5.0.5",
30
30
  "typescript": "^5.2.2"
31
31
  }
32
- }
32
+ }