promod 0.0.44 → 1.0.0-rc-11

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 (59) hide show
  1. package/bin/promod_cli +14 -0
  2. package/built/helpers/execute.script.d.ts +2 -0
  3. package/built/helpers/execute.script.js +34 -0
  4. package/built/helpers/execute.script.js.map +1 -0
  5. package/built/index.d.ts +4 -3
  6. package/built/index.js +11 -5
  7. package/built/index.js.map +1 -1
  8. package/built/interface.d.ts +44 -0
  9. package/built/interface.js +3 -0
  10. package/built/interface.js.map +1 -0
  11. package/built/pw/config/config.d.ts +11 -0
  12. package/built/pw/config/config.js +22 -0
  13. package/built/pw/config/config.js.map +1 -0
  14. package/built/pw/config/index.d.ts +1 -0
  15. package/built/pw/config/index.js +18 -0
  16. package/built/pw/config/index.js.map +1 -0
  17. package/built/pw/driver/index.d.ts +5 -0
  18. package/built/pw/driver/index.js +34 -0
  19. package/built/pw/driver/index.js.map +1 -0
  20. package/built/pw/driver/local.d.ts +7 -0
  21. package/built/pw/driver/local.js +45 -0
  22. package/built/pw/driver/local.js.map +1 -0
  23. package/built/pw/driver/remote.d.ts +7 -0
  24. package/built/pw/driver/remote.js +28 -0
  25. package/built/pw/driver/remote.js.map +1 -0
  26. package/built/pw/index.d.ts +8 -0
  27. package/built/pw/index.js +14 -0
  28. package/built/pw/index.js.map +1 -0
  29. package/built/pw/pw_client.d.ts +115 -0
  30. package/built/pw/pw_client.js +376 -0
  31. package/built/pw/pw_client.js.map +1 -0
  32. package/built/pw/pw_element.d.ts +85 -0
  33. package/built/pw/pw_element.js +334 -0
  34. package/built/pw/pw_element.js.map +1 -0
  35. package/built/swd/config/config.d.ts +2 -2
  36. package/built/swd/config/config.js.map +1 -1
  37. package/built/swd/config/index.js +5 -1
  38. package/built/swd/config/index.js.map +1 -1
  39. package/built/swd/driver/index.d.ts +2 -2
  40. package/built/swd/driver/index.js.map +1 -1
  41. package/built/swd/driver/remote.d.ts +2 -1
  42. package/built/swd/index.d.ts +2 -6
  43. package/built/swd/index.js +0 -3
  44. package/built/swd/index.js.map +1 -1
  45. package/built/swd/swd_alignment.d.ts +3 -0
  46. package/built/swd/swd_alignment.js +32 -0
  47. package/built/swd/swd_alignment.js.map +1 -0
  48. package/built/swd/swd_client.d.ts +32 -17
  49. package/built/swd/swd_client.js +38 -36
  50. package/built/swd/swd_client.js.map +1 -1
  51. package/built/swd/swd_element.d.ts +16 -66
  52. package/built/swd/swd_element.js +30 -50
  53. package/built/swd/swd_element.js.map +1 -1
  54. package/package.json +13 -7
  55. package/readme.md +4 -4
  56. package/tsconfig.json +2 -1
  57. package/specs/base.spec.ts +0 -165
  58. package/specs/example.spec.ts +0 -15
  59. package/specs/misc/hover_focus.html +0 -25
package/bin/promod_cli ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ process.title = 'promod_cli';
5
+
6
+ const { execSync } = require('child_process');
7
+
8
+ const { PROMOD_ENGINE = 'selenium' } = process.env;
9
+
10
+ if (PROMOD_ENGINE === 'selenium') {
11
+ execSync('npm i selenium-webdriver');
12
+ } else if (PROMOD_ENGINE === 'playwright') {
13
+ execSync('npm i playwright');
14
+ }
@@ -0,0 +1,2 @@
1
+ declare function toNativeEngineExecuteScriptArgs(args: any): Promise<any>;
2
+ export { toNativeEngineExecuteScriptArgs };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toNativeEngineExecuteScriptArgs = void 0;
4
+ const sat_utils_1 = require("sat-utils");
5
+ async function toNativeEngineExecuteScriptArgs(args) {
6
+ const executeScriptArgs = [];
7
+ const argsArray = (0, sat_utils_1.toArray)(args);
8
+ if (!argsArray.length)
9
+ return;
10
+ for (const item of argsArray) {
11
+ const resolvedItem = (0, sat_utils_1.isPromise)(item) ? await item : item;
12
+ if (Array.isArray(resolvedItem)) {
13
+ const arrayItems = [];
14
+ for (const itemArr of resolvedItem) {
15
+ arrayItems.push(itemArr);
16
+ }
17
+ executeScriptArgs.push(arrayItems);
18
+ }
19
+ else if (resolvedItem && resolvedItem.getEngineElement) {
20
+ executeScriptArgs.push(await resolvedItem.getEngineElement());
21
+ }
22
+ else if (resolvedItem && resolvedItem.getEngineElements) {
23
+ executeScriptArgs.push(...(await resolvedItem.getEngineElements()));
24
+ }
25
+ else {
26
+ executeScriptArgs.push(resolvedItem);
27
+ }
28
+ }
29
+ if (executeScriptArgs.length === 1 && !(0, sat_utils_1.isArray)(args))
30
+ return executeScriptArgs[0];
31
+ return executeScriptArgs;
32
+ }
33
+ exports.toNativeEngineExecuteScriptArgs = toNativeEngineExecuteScriptArgs;
34
+ //# sourceMappingURL=execute.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.script.js","sourceRoot":"","sources":["../../lib/helpers/execute.script.ts"],"names":[],"mappings":";;;AAAA,yCAAwD;AAExD,KAAK,UAAU,+BAA+B,CAAC,IAAI;IACjD,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,CAAC,SAAS,CAAC,MAAM;QAAE,OAAO;IAE9B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;QAC5B,MAAM,YAAY,GAAG,IAAA,qBAAS,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC/B,MAAM,UAAU,GAAG,EAAE,CAAC;YAEtB,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE;gBAClC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1B;YACD,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACpC;aAAM,IAAI,YAAY,IAAI,YAAY,CAAC,gBAAgB,EAAE;YACxD,iBAAiB,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC;SAC/D;aAAM,IAAI,YAAY,IAAI,YAAY,CAAC,iBAAiB,EAAE;YACzD,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;SACrE;aAAM;YACL,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACtC;KACF;IAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAA,mBAAO,EAAC,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAElF,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAEQ,0EAA+B"}
package/built/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export * from './swd';
1
+ import { seleniumWD } from './swd';
2
+ import { playwrightWD } from './pw';
2
3
  export * from './swd/config';
3
- export { PromodSeleniumElementType, PromodSeleniumElementsType } from './swd/swd_element';
4
- export { Browser } from './swd/swd_client';
4
+ export * from './pw/config';
5
+ export { seleniumWD, playwrightWD };
package/built/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -10,9 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
15
  };
12
16
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.Browser = void 0;
14
- __exportStar(require("./swd"), exports);
17
+ exports.playwrightWD = exports.seleniumWD = void 0;
18
+ const swd_1 = require("./swd");
19
+ Object.defineProperty(exports, "seleniumWD", { enumerable: true, get: function () { return swd_1.seleniumWD; } });
20
+ const pw_1 = require("./pw");
21
+ Object.defineProperty(exports, "playwrightWD", { enumerable: true, get: function () { return pw_1.playwrightWD; } });
15
22
  __exportStar(require("./swd/config"), exports);
16
- var swd_client_1 = require("./swd/swd_client");
17
- Object.defineProperty(exports, "Browser", { enumerable: true, get: function () { return swd_client_1.Browser; } });
23
+ __exportStar(require("./pw/config"), exports);
18
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,wCAAsB;AACtB,+CAA6B;AAG7B,+CAAyC;AAAjC,qGAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BAAmC;AAM1B,2FANA,gBAAU,OAMA;AALnB,6BAAoC;AAKf,6FALZ,iBAAY,OAKY;AAHjC,+CAA6B;AAC7B,8CAA4B"}
@@ -0,0 +1,44 @@
1
+ export interface PromodElementsType {
2
+ get(index: number): PromodElementType;
3
+ last(): PromodElementType;
4
+ first(): PromodElementType;
5
+ each(cb: (item: PromodElementType, index?: number) => Promise<void>): Promise<void>;
6
+ count(): Promise<number>;
7
+ }
8
+ export interface PromodElementType {
9
+ getId(): Promise<string>;
10
+ click(withScroll?: boolean): Promise<void>;
11
+ hover(): Promise<void>;
12
+ focus(): Promise<void>;
13
+ sendKeys(...keys: Array<string | number | Promise<string | number>>): Promise<void>;
14
+ getTagName(): Promise<string>;
15
+ getCssValue(cssStyleProperty: string): Promise<string>;
16
+ getAttribute(attributeName: string): Promise<string>;
17
+ getText(): Promise<string>;
18
+ getSize(): Promise<{
19
+ width: number;
20
+ height: number;
21
+ }>;
22
+ getRect(): Promise<{
23
+ x: number;
24
+ y: number;
25
+ width: number;
26
+ height: number;
27
+ }>;
28
+ getLocation(): Promise<{
29
+ x: number;
30
+ y: number;
31
+ }>;
32
+ $(selector: string | ((...args: any[]) => any) | Promise<any>): PromodElementType;
33
+ $$(selector: string | ((...args: any[]) => any) | Promise<any>): PromodElementsType;
34
+ isEnabled(): Promise<boolean>;
35
+ isSelected(): Promise<boolean>;
36
+ isPresent(): Promise<boolean>;
37
+ submit(): Promise<void>;
38
+ clear(): Promise<void>;
39
+ isDisplayed(): Promise<boolean>;
40
+ takeScreenshot(opt_scroll?: boolean): Promise<string>;
41
+ getEngineElement(): Promise<unknown>;
42
+ scrollIntoView(position?: boolean | string): Promise<void>;
43
+ }
44
+ export declare type ExecuteScriptFn = (data: any | any[]) => unknown;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../lib/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ export declare type BaseConfPW = {
2
+ [key: string]: any;
3
+ capabilities?: {
4
+ [key: string]: any;
5
+ browserName?: 'chromium' | '';
6
+ };
7
+ baseUrl?: string;
8
+ };
9
+ declare function validatePWConf(configObj: BaseConfPW): void;
10
+ declare function validatePlaywrightConf(configObj: any): any;
11
+ export { validatePWConf, validatePlaywrightConf };
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validatePlaywrightConf = exports.validatePWConf = void 0;
4
+ const checkString = ['baseUrl'];
5
+ function validatePWConf(configObj) {
6
+ const configKeys = Object.keys(configObj);
7
+ // throw new TypeError(`
8
+ // config: ${key} value should be a string,
9
+ // please use BaseConf type or visit https://github.com/Simple-Automation-Testing/promod/blob/master/lib/swd/config/config.ts
10
+ // `);
11
+ // }
12
+ // throw new TypeError(`
13
+ // config: ${key} ${configObj[key]} file does not exist
14
+ // please use BaseConf type or visit https://github.com/Simple-Automation-Testing/promod/blob/master/lib/swd/config/config.ts
15
+ // `);
16
+ }
17
+ exports.validatePWConf = validatePWConf;
18
+ function validatePlaywrightConf(configObj) {
19
+ return configObj;
20
+ }
21
+ exports.validatePlaywrightConf = validatePlaywrightConf;
22
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/pw/config/config.ts"],"names":[],"mappings":";;;AAGA,MAAM,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC;AAYhC,SAAS,cAAc,CAAC,SAAqB;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,8BAA8B;IAC9B,2CAA2C;IAC3C,6HAA6H;IAC7H,SAAS;IACT,QAAQ;IAER,8BAA8B;IAC9B,uDAAuD;IACvD,6HAA6H;IAC7H,SAAS;AACX,CAAC;AAMQ,wCAAc;AAJvB,SAAS,sBAAsB,CAAC,SAAS;IACvC,OAAO,SAAS,CAAC;AACnB,CAAC;AAEwB,wDAAsB"}
@@ -0,0 +1 @@
1
+ export * from './config';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./config"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/pw/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
@@ -0,0 +1,5 @@
1
+ import { Browser as PWBrowser } from 'playwright-core';
2
+ import { BaseConfPW } from '../config/config';
3
+ import { Browser } from '../pw_client';
4
+ declare function getDriver(config?: BaseConfPW | Browser, browser?: Browser): Promise<PWBrowser>;
5
+ export { getDriver };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDriver = void 0;
4
+ const remote_1 = require("./remote");
5
+ const pw_client_1 = require("../pw_client");
6
+ const config_1 = require("../config");
7
+ async function getDriver(config = {}, browser) {
8
+ let _config;
9
+ let _browser;
10
+ if (config instanceof pw_client_1.Browser && arguments.length === 1) {
11
+ _browser = config;
12
+ _config = {};
13
+ }
14
+ else {
15
+ _browser = browser;
16
+ _config = config;
17
+ }
18
+ // validate config
19
+ (0, config_1.validatePlaywrightConf)(_config);
20
+ const { driver, server, config: commonConfig } = await (0, remote_1._getDriver)(_config);
21
+ /**
22
+ * @info
23
+ * init creations of the new driver
24
+ * and init current driver
25
+ */
26
+ _browser.setCreateNewDriver = () => getDriver(_config);
27
+ _browser.setClient({ driver, server, config: commonConfig });
28
+ if (config.baseUrl) {
29
+ _browser.baseUrl = config.baseUrl;
30
+ }
31
+ return driver;
32
+ }
33
+ exports.getDriver = getDriver;
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/pw/driver/index.ts"],"names":[],"mappings":";;;AACA,qCAAsC;AAEtC,4CAAuC;AACvC,sCAAmD;AAEnD,KAAK,UAAU,SAAS,CAAC,SAA+B,EAAE,EAAE,OAAiB;IAC3E,IAAI,OAAO,CAAC;IACZ,IAAI,QAAQ,CAAC;IAEb,IAAI,MAAM,YAAY,mBAAO,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACvD,QAAQ,GAAG,MAAM,CAAC;QAClB,OAAO,GAAG,EAAE,CAAC;KACd;SAAM;QACL,QAAQ,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,MAAM,CAAC;KAClB;IAED,kBAAkB;IAClB,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;IAEhC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;IAE3E;;;;OAIG;IAEH,QAAQ,CAAC,kBAAkB,GAAG,GAAuB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAE7D,IAAI,MAAM,CAAC,OAAO,EAAE;QAClB,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KACnC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAEQ,8BAAS"}
@@ -0,0 +1,7 @@
1
+ import type { BrowserType } from 'playwright-core';
2
+ declare const browserNameMapping: {
3
+ chrome: BrowserType<{}>;
4
+ firefox: BrowserType<{}>;
5
+ };
6
+ declare const runLocalEnv: (config: any) => Promise<any>;
7
+ export { runLocalEnv, browserNameMapping };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.browserNameMapping = exports.runLocalEnv = void 0;
4
+ const sat_utils_1 = require("sat-utils");
5
+ const playwright_core_1 = require("playwright-core");
6
+ const browserNameMapping = {
7
+ chrome: playwright_core_1.chromium,
8
+ firefox: playwright_core_1.firefox,
9
+ };
10
+ exports.browserNameMapping = browserNameMapping;
11
+ const shouldBeHeadless = (args, isHeadlessRequired) => {
12
+ if ((0, sat_utils_1.isBoolean)(isHeadlessRequired)) {
13
+ return isHeadlessRequired;
14
+ }
15
+ return args.some((arg) => arg === '--headless');
16
+ };
17
+ const throwInstructionError = (additional = '') => {
18
+ throw new Error(`${additional}Run 'npx playwright install' to download and install browsers`);
19
+ };
20
+ const getCombinedConfig = (config = {}) => {
21
+ const combinedConfig = config;
22
+ return combinedConfig;
23
+ };
24
+ const runLocalEnv = async (config) => {
25
+ if (config.wsEndpoint || config.browserCDPWSEndpoint) {
26
+ return config;
27
+ }
28
+ const combinedConfig = getCombinedConfig(config);
29
+ // TODO investigate how add prefs to chrome
30
+ const { downloadsPath, headless = false, args = [], agent } = combinedConfig;
31
+ const isHeadless = shouldBeHeadless(args, headless);
32
+ const server = await browserNameMapping[config.capabilities.browserName].launchServer({
33
+ headless: isHeadless,
34
+ args,
35
+ downloadsPath,
36
+ });
37
+ const wsEndpoint = server.wsEndpoint();
38
+ return {
39
+ server,
40
+ wsEndpoint,
41
+ capabilities: combinedConfig.capabilities,
42
+ };
43
+ };
44
+ exports.runLocalEnv = runLocalEnv;
45
+ //# sourceMappingURL=local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../lib/pw/driver/local.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AACtC,qDAAoD;AAIpD,MAAM,kBAAkB,GAAG;IACzB,MAAM,EAAE,0BAAQ;IAChB,OAAO,EAAP,yBAAO;CACR,CAAC;AA6CoB,gDAAkB;AA3CxC,MAAM,gBAAgB,GAAG,CAAC,IAAc,EAAE,kBAAkB,EAAE,EAAE;IAC9D,IAAI,IAAA,qBAAS,EAAC,kBAAkB,CAAC,EAAE;QACjC,OAAO,kBAAkB,CAAC;KAC3B;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE;IAChD,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,+DAA+D,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,SAAc,EAAE,EAAE,EAAE;IAC7C,MAAM,cAAc,GAAG,MAAM,CAAC;IAE9B,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE;IACnC,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,oBAAoB,EAAE;QACpD,OAAO,MAAM,CAAC;KACf;IACD,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEjD,2CAA2C;IAC3C,MAAM,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC;IAE7E,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,MAAO,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAiB,CAAC,YAAY,CAAC;QACrG,QAAQ,EAAE,UAAU;QACpB,IAAI;QACJ,aAAa;KACd,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEvC,OAAO;QACL,MAAM;QACN,UAAU;QACV,YAAY,EAAE,cAAc,CAAC,YAAY;KAC1C,CAAC;AACJ,CAAC,CAAC;AAEO,kCAAW"}
@@ -0,0 +1,7 @@
1
+ import { Browser, BrowserServer } from 'playwright-core';
2
+ declare const _getDriver: (config: any) => Promise<{
3
+ driver: Browser;
4
+ server?: BrowserServer;
5
+ config?: any;
6
+ }>;
7
+ export { _getDriver };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._getDriver = void 0;
4
+ const local_1 = require("./local");
5
+ const _getDriver = async (config) => {
6
+ const combinedConfig = config || { capabilities: { browserName: 'chrome' } };
7
+ const restConfig = {
8
+ isMobile: config.isMobile,
9
+ userAgent: config.userAgent,
10
+ viewport: config.viewport,
11
+ };
12
+ if (!combinedConfig.capabilities) {
13
+ combinedConfig.capabilities = { browserName: 'chrome' };
14
+ }
15
+ if (config.wsEndpoint) {
16
+ const driver = await local_1.browserNameMapping[combinedConfig.capabilities.browserName].connect(config.wsEndpoint);
17
+ return { driver };
18
+ }
19
+ if (config.browserCDPWSEndpoint) {
20
+ const driver = await local_1.browserNameMapping[combinedConfig.capabilities.browserName].connectOverCDP(config.wsEndpoint);
21
+ return { driver };
22
+ }
23
+ const { server, wsEndpoint } = await (0, local_1.runLocalEnv)(config);
24
+ const driver = await local_1.browserNameMapping[combinedConfig.capabilities.browserName].connect(wsEndpoint);
25
+ return { driver, server, config: restConfig };
26
+ };
27
+ exports._getDriver = _getDriver;
28
+ //# sourceMappingURL=remote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../lib/pw/driver/remote.ts"],"names":[],"mappings":";;;AACA,mCAA0D;AAE1D,MAAM,UAAU,GAAG,KAAK,EAAE,MAAM,EAAsE,EAAE;IACtG,MAAM,cAAc,GAAG,MAAM,IAAI,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC;IAE7E,MAAM,UAAU,GAAG;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;IAEF,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;QAChC,cAAc,CAAC,YAAY,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;KACzD;IAED,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,MAAM,MAAM,GAAG,MAAM,0BAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE5G,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB;IAED,IAAI,MAAM,CAAC,oBAAoB,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,0BAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnH,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB;IAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,MAAM,0BAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAErG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChD,CAAC,CAAC;AAEO,gCAAU"}
@@ -0,0 +1,8 @@
1
+ import { getDriver } from './driver';
2
+ declare const playwrightWD: {
3
+ getDriver: typeof getDriver;
4
+ browser: import("./pw_client").Browser;
5
+ $: (selector: string | Promise<any> | ((...args: any[]) => any), root?: any, ...rest: any[]) => import("../interface").PromodElementType;
6
+ $$: (selector: string | Promise<any> | ((...args: any[]) => any), root?: any, ...rest: any[]) => import("../interface").PromodElementsType;
7
+ };
8
+ export { playwrightWD };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.playwrightWD = void 0;
4
+ const driver_1 = require("./driver");
5
+ const pw_element_1 = require("./pw_element");
6
+ const pw_client_1 = require("./pw_client");
7
+ const playwrightWD = {
8
+ getDriver: driver_1.getDriver,
9
+ browser: pw_client_1.browser,
10
+ $: pw_element_1.$,
11
+ $$: pw_element_1.$$,
12
+ };
13
+ exports.playwrightWD = playwrightWD;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/pw/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,6CAAqC;AACrC,2CAAsC;AAEtC,MAAM,YAAY,GAAG;IACnB,SAAS,EAAT,kBAAS;IACT,OAAO,EAAP,mBAAO;IACP,CAAC,EAAD,cAAC;IACD,EAAE,EAAF,eAAE;CACH,CAAC;AAEO,oCAAY"}
@@ -0,0 +1,115 @@
1
+ /// <reference types="node" />
2
+ import { waitForCondition } from 'sat-utils';
3
+ import { ExecuteScriptFn } from '../interface';
4
+ import type { Browser as PWBrowser, BrowserContext, Page } from 'playwright-core';
5
+ interface IBrowserTab {
6
+ index?: number;
7
+ expectedQuantity?: number;
8
+ title?: string;
9
+ timeout?: number;
10
+ }
11
+ declare class ContextWrapper {
12
+ server: PWBrowser;
13
+ /** @private */
14
+ private _currentContext;
15
+ /** @private */
16
+ private _currentPage;
17
+ /** @private */
18
+ private _contextConfig;
19
+ constructor(serverBrowser: PWBrowser, config?: {});
20
+ switchPage(data: IBrowserTab): Promise<void>;
21
+ runNewContext(ignoreConfig?: boolean): Promise<void>;
22
+ getCurrentContext(): Promise<BrowserContext>;
23
+ changeContext({ index, tabTitle }: {
24
+ index: any;
25
+ tabTitle: any;
26
+ }): Promise<void>;
27
+ getCurrentPage(): Promise<Page>;
28
+ closeAllContexts(): Promise<void>;
29
+ }
30
+ declare type TCookie = {
31
+ name: string;
32
+ value: string;
33
+ url?: string;
34
+ domain?: string;
35
+ path?: string;
36
+ expires?: number;
37
+ httpOnly?: boolean;
38
+ secure?: boolean;
39
+ sameSite?: 'Strict' | 'Lax' | 'None';
40
+ };
41
+ declare class Browser {
42
+ wait: typeof waitForCondition;
43
+ _engineDriver: PWBrowser;
44
+ _contextWrapper: ContextWrapper;
45
+ _contextFrame: Page;
46
+ /** @private */
47
+ private _server;
48
+ /** @private */
49
+ private appBaseUrl;
50
+ /** @private */
51
+ private initialTab;
52
+ /** @private */
53
+ private _engineDrivers;
54
+ /** @private */
55
+ private _createNewDriver;
56
+ constructor();
57
+ currentClient(): PWBrowser;
58
+ getWorkingContext(): Promise<Page>;
59
+ getCurrentPage(): Promise<Page>;
60
+ runNewBrowser(): Promise<void>;
61
+ switchToBrowser({ index, tabTitle }?: {
62
+ index?: number;
63
+ tabTitle?: string;
64
+ }): Promise<void>;
65
+ set setCreateNewDriver(driverCreator: any);
66
+ setClient({ driver, server, config }: {
67
+ driver: any;
68
+ server: any;
69
+ config: any;
70
+ }): void;
71
+ get Key(): import("selenium-webdriver/lib/input").IKey;
72
+ get baseUrl(): string;
73
+ set baseUrl(url: string);
74
+ /** @private */
75
+ returnToInitialTab(): Promise<void>;
76
+ openNewTab(url?: string): Promise<Window>;
77
+ switchToTab(tabObject: IBrowserTab): Promise<void>;
78
+ private closeAllpagesExceptInitial;
79
+ makeActionAtEveryTab(action: (...args: any) => Promise<any>, handles?: string[]): Promise<void>;
80
+ setCookies(cookies: TCookie | TCookie[]): Promise<void>;
81
+ /**
82
+ * switchToBrowserTab
83
+ * @private
84
+ */
85
+ private switchToBrowserTab;
86
+ getTitle(): Promise<string>;
87
+ getCurrentUrl(): Promise<string>;
88
+ takeScreenshot(): Promise<Buffer>;
89
+ tabTitle(): Promise<string>;
90
+ getpages(): Promise<Page>;
91
+ getCurrentTab(): Promise<Page>;
92
+ get(url: string): Promise<import("playwright-core").Response>;
93
+ switchToIframe(selector: string | {
94
+ name?: string;
95
+ url?: string | RegExp;
96
+ }, jumpToDefaultFirst?: boolean): Promise<void>;
97
+ switchToDefauldIframe(): Promise<void>;
98
+ setWindowSize(width: number, height: number): Promise<void>;
99
+ sleep(time: number): Promise<void>;
100
+ executeScript(script: ExecuteScriptFn, args?: any | any[]): Promise<any>;
101
+ /**
102
+ * @deprecated
103
+ */
104
+ executeAsyncScript(script: any, ...args: any[]): Promise<any>;
105
+ back(): Promise<import("playwright-core").Response>;
106
+ forward(): Promise<import("playwright-core").Response>;
107
+ refresh(): Promise<import("playwright-core").Response>;
108
+ switchTo(): void;
109
+ quit(): Promise<void>;
110
+ quitAll(): Promise<void>;
111
+ close(): Promise<void>;
112
+ private resolveUrl;
113
+ }
114
+ declare const browser: Browser;
115
+ export { browser, Browser };