automation_model 1.0.488-dev → 1.0.488
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +133 -0
- package/lib/analyze_helper.js.map +1 -1
- package/lib/api.d.ts +2 -2
- package/lib/api.js +151 -120
- package/lib/api.js.map +1 -1
- package/lib/auto_page.d.ts +7 -2
- package/lib/auto_page.js +309 -29
- package/lib/auto_page.js.map +1 -1
- package/lib/browser_manager.d.ts +6 -3
- package/lib/browser_manager.js +194 -46
- package/lib/browser_manager.js.map +1 -1
- package/lib/bruno.d.ts +2 -0
- package/lib/bruno.js +381 -0
- package/lib/bruno.js.map +1 -0
- package/lib/check_performance.d.ts +1 -0
- package/lib/check_performance.js +57 -0
- package/lib/check_performance.js.map +1 -0
- package/lib/command_common.d.ts +5 -4
- package/lib/command_common.js +126 -21
- package/lib/command_common.js.map +1 -1
- package/lib/date_time.js.map +1 -1
- package/lib/drawRect.js.map +1 -1
- package/lib/environment.d.ts +1 -0
- package/lib/environment.js +1 -0
- package/lib/environment.js.map +1 -1
- package/lib/error-messages.d.ts +6 -0
- package/lib/error-messages.js +206 -0
- package/lib/error-messages.js.map +1 -0
- package/lib/file_checker.d.ts +1 -0
- package/lib/file_checker.js +172 -0
- package/lib/file_checker.js.map +1 -0
- package/lib/find_function.js.map +1 -1
- package/lib/generation_scripts.d.ts +4 -0
- package/lib/generation_scripts.js +2 -0
- package/lib/generation_scripts.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/init_browser.d.ts +4 -3
- package/lib/init_browser.js +160 -83
- package/lib/init_browser.js.map +1 -1
- package/lib/locate_element.js +16 -14
- package/lib/locate_element.js.map +1 -1
- package/lib/locator.d.ts +37 -0
- package/lib/locator.js +172 -0
- package/lib/locator.js.map +1 -1
- package/lib/locator_log.d.ts +26 -0
- package/lib/locator_log.js +69 -0
- package/lib/locator_log.js.map +1 -0
- package/lib/network.d.ts +5 -0
- package/lib/network.js +494 -0
- package/lib/network.js.map +1 -0
- package/lib/route.d.ts +83 -0
- package/lib/route.js +691 -0
- package/lib/route.js.map +1 -0
- package/lib/scripts/axe.mini.js +24005 -0
- package/lib/snapshot_validation.d.ts +37 -0
- package/lib/snapshot_validation.js +360 -0
- package/lib/snapshot_validation.js.map +1 -0
- package/lib/stable_browser.d.ts +147 -47
- package/lib/stable_browser.js +2587 -828
- package/lib/stable_browser.js.map +1 -1
- package/lib/table.d.ts +15 -0
- package/lib/table.js +257 -0
- package/lib/table.js.map +1 -0
- package/lib/table_analyze.js.map +1 -1
- package/lib/table_helper.d.ts +19 -0
- package/lib/table_helper.js +130 -0
- package/lib/table_helper.js.map +1 -0
- package/lib/test_context.d.ts +6 -0
- package/lib/test_context.js +5 -0
- package/lib/test_context.js.map +1 -1
- package/lib/utils.d.ts +38 -3
- package/lib/utils.js +748 -36
- package/lib/utils.js.map +1 -1
- package/package.json +31 -13
- package/lib/axe/axe.mini.js +0 -12
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import * as fs from "fs"; // sync fs
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { promises as fsAsync } from "fs"; // async fs
|
|
4
|
+
import { _commandError, _commandFinally, _preCommand } from "./command_common.js";
|
|
5
|
+
import { Types } from "./stable_browser.js";
|
|
6
|
+
import { replaceWithLocalTestData } from "./utils.js";
|
|
7
|
+
const checkFileAccess = (filePath, accessMode) => {
|
|
8
|
+
return new Promise((resolve) => {
|
|
9
|
+
fs.access(filePath, accessMode, (err) => {
|
|
10
|
+
resolve(!err);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
const getFileName = (filePath) => {
|
|
15
|
+
const platform = process.platform;
|
|
16
|
+
return platform === "win32" ? filePath.split("\\").pop() || "" : filePath.split("/").pop() || "";
|
|
17
|
+
};
|
|
18
|
+
// Simplified regex check
|
|
19
|
+
function testForRegex(text) {
|
|
20
|
+
return text.startsWith("regex:");
|
|
21
|
+
}
|
|
22
|
+
export const verifyFileExists = async (filePath, options, context, world) => {
|
|
23
|
+
if (!options)
|
|
24
|
+
options = {};
|
|
25
|
+
const fileName = getFileName(filePath);
|
|
26
|
+
let isSoft = false;
|
|
27
|
+
const match = filePath.match(/(soft:)?(regex:|exact:|contains:)(.*)/);
|
|
28
|
+
if (match) {
|
|
29
|
+
isSoft = !!match[1]; // true if 'soft:' is present
|
|
30
|
+
}
|
|
31
|
+
const state = {
|
|
32
|
+
locate: false,
|
|
33
|
+
scroll: false,
|
|
34
|
+
screenshot: false,
|
|
35
|
+
highlight: false,
|
|
36
|
+
throwError: !isSoft, // don't throw error for soft assertions
|
|
37
|
+
operation: "verifyFileExists",
|
|
38
|
+
value: filePath,
|
|
39
|
+
text: `Verify file ${fileName} exists`,
|
|
40
|
+
options,
|
|
41
|
+
type: Types.VERIFY_FILE_EXISTS,
|
|
42
|
+
world,
|
|
43
|
+
};
|
|
44
|
+
await _preCommand(state, context.web);
|
|
45
|
+
try {
|
|
46
|
+
filePath = (await replaceWithLocalTestData(filePath, world, true, false, context, context.web, false));
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
// Ignore error
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
let pathToMatch = filePath;
|
|
53
|
+
if (isSoft) {
|
|
54
|
+
pathToMatch = filePath.replace(/^soft:/, ""); // remove soft: prefix for parsing
|
|
55
|
+
}
|
|
56
|
+
let dir;
|
|
57
|
+
let input;
|
|
58
|
+
console.log("pathSeparator", path.sep);
|
|
59
|
+
if (pathToMatch.includes("regex:")) {
|
|
60
|
+
const regexIndex = pathToMatch.indexOf("regex:");
|
|
61
|
+
// Handle both forward slashes and backslashes before regex:
|
|
62
|
+
let dirPart = pathToMatch.substring(0, regexIndex);
|
|
63
|
+
// Remove trailing slash/backslash
|
|
64
|
+
if (dirPart.endsWith("/") || dirPart.endsWith("\\")) {
|
|
65
|
+
dirPart = dirPart.slice(0, -1);
|
|
66
|
+
}
|
|
67
|
+
dir = dirPart;
|
|
68
|
+
input = pathToMatch.substring(regexIndex);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// Use path.sep to handle both forward and backward slashes
|
|
72
|
+
const pathSeparator = path.sep;
|
|
73
|
+
const lastSlashIndex = pathToMatch.lastIndexOf(pathSeparator);
|
|
74
|
+
// If no separator found, try the other separator (for mixed paths)
|
|
75
|
+
if (lastSlashIndex === -1) {
|
|
76
|
+
const alternativeSeparator = pathSeparator === "/" ? "\\" : "/";
|
|
77
|
+
const altLastSlashIndex = pathToMatch.lastIndexOf(alternativeSeparator);
|
|
78
|
+
if (altLastSlashIndex !== -1) {
|
|
79
|
+
dir = pathToMatch.substring(0, altLastSlashIndex);
|
|
80
|
+
input = pathToMatch.substring(altLastSlashIndex + 1);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// No separator found, assume current directory
|
|
84
|
+
dir = ".";
|
|
85
|
+
input = pathToMatch;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
dir = pathToMatch.substring(0, lastSlashIndex);
|
|
90
|
+
input = pathToMatch.substring(lastSlashIndex + 1);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (isSoft) {
|
|
94
|
+
dir = dir.slice(0, -5);
|
|
95
|
+
}
|
|
96
|
+
console.log(`Directory to check: ${dir}`);
|
|
97
|
+
console.log(`Input pattern: ${input}`);
|
|
98
|
+
const files = await fsAsync.readdir(dir);
|
|
99
|
+
let found = false;
|
|
100
|
+
if (input.startsWith("exact:")) {
|
|
101
|
+
const target = input.replace("exact:", "");
|
|
102
|
+
found = files.includes(target);
|
|
103
|
+
}
|
|
104
|
+
else if (input.startsWith("contains:")) {
|
|
105
|
+
const target = input.replace("contains:", "");
|
|
106
|
+
found = files.some((f) => f.includes(target));
|
|
107
|
+
}
|
|
108
|
+
else if (input.startsWith("format:")) {
|
|
109
|
+
const extension = input.replace("format:", "");
|
|
110
|
+
found = files.some((f) => f.endsWith(`.${extension}`));
|
|
111
|
+
}
|
|
112
|
+
else if (testForRegex(input)) {
|
|
113
|
+
let raw = input.replace("regex:", "").trim(); // e.g. "/file/i" or "file.*::i"
|
|
114
|
+
let pattern = raw;
|
|
115
|
+
let flags = "";
|
|
116
|
+
// Normalize delimiters: convert backslash delimiters to forward slash delimiters
|
|
117
|
+
// This preserves the regex pattern while standardizing the delimiter format
|
|
118
|
+
if (raw.startsWith("\\") && raw.lastIndexOf("\\") > 0) {
|
|
119
|
+
// Convert \pattern\flags to /pattern/flags format
|
|
120
|
+
const lastBackslash = raw.lastIndexOf("\\");
|
|
121
|
+
const patternPart = raw.substring(1, lastBackslash);
|
|
122
|
+
const flagsPart = raw.substring(lastBackslash + 1);
|
|
123
|
+
raw = `/${patternPart}/${flagsPart}`;
|
|
124
|
+
}
|
|
125
|
+
// Now handle the standardized format
|
|
126
|
+
if (raw.startsWith("/") && raw.lastIndexOf("/") > 0) {
|
|
127
|
+
// Standard regex format: /pattern/flags
|
|
128
|
+
const lastSlash = raw.lastIndexOf("/");
|
|
129
|
+
flags = raw.substring(lastSlash + 1);
|
|
130
|
+
pattern = raw.substring(1, lastSlash);
|
|
131
|
+
}
|
|
132
|
+
else if (raw.includes("::")) {
|
|
133
|
+
// Alternative format: pattern::flags
|
|
134
|
+
[pattern, flags] = raw.split("::");
|
|
135
|
+
}
|
|
136
|
+
console.log(`Regex pattern: ${pattern}, flags: ${flags}`);
|
|
137
|
+
try {
|
|
138
|
+
const regex = new RegExp(pattern, flags);
|
|
139
|
+
found = files.some((f) => {
|
|
140
|
+
const matched = regex.test(f);
|
|
141
|
+
return matched;
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
catch (regexError) {
|
|
145
|
+
throw new Error(`Invalid regex pattern: ${pattern}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Fallback to exact path check
|
|
150
|
+
found = await checkFileAccess(pathToMatch, fs.constants.F_OK);
|
|
151
|
+
}
|
|
152
|
+
if (!found) {
|
|
153
|
+
console.log(`Available files in '${dir}':`, files);
|
|
154
|
+
if (!isSoft) {
|
|
155
|
+
throw new Error(`No file matched the pattern: ${filePath}`);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
console.warn(`Soft assertion failed for pattern: ${filePath}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
console.log(`File verification successful for pattern: ${input}`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
await _commandError(state, err, context.web);
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
await _commandFinally(state, context.web);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
//# sourceMappingURL=file_checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file_checker.js","sourceRoot":"","sources":["../../src/file_checker.ts"],"names":[],"mappings":"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"}
|
package/lib/find_function.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find_function.js","sourceRoot":"","sources":["../../src/find_function.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,KAAK,EAAE,KAAiB,EAAE,EAAE;IAChD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"find_function.js","sourceRoot":"","sources":["../../src/find_function.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,KAAK,EAAE,KAAiB,EAAE,EAAE;IAChD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;IACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,qCAAqC;IACrC,mBAAmB;IACnB,MAAM;IAEN,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QACD,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7C,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QACD,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generation_scripts.js","sourceRoot":"","sources":["../../src/generation_scripts.ts"],"names":[],"mappings":""}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -7,4 +7,8 @@ export * from "./browser_manager.js";
|
|
|
7
7
|
export * from "./analyze_helper.js";
|
|
8
8
|
export * from "./find_function.js";
|
|
9
9
|
export * from "./utils.js";
|
|
10
|
+
export * from "./table.js";
|
|
11
|
+
export * from "./bruno.js";
|
|
12
|
+
export * from "./file_checker.js";
|
|
13
|
+
//export * from "./profile.js";
|
|
10
14
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,+BAA+B"}
|
package/lib/init_browser.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Environment } from "./environment.js";
|
|
2
|
-
import { TestContext } from "./test_context.js";
|
|
3
2
|
import { StableBrowser } from "./stable_browser.js";
|
|
4
3
|
import { Browser as PlaywrightBrowser } from "playwright";
|
|
5
4
|
import { Browser } from "./browser_manager.js";
|
|
6
|
-
|
|
5
|
+
import { InitScripts } from "./generation_scripts.js";
|
|
6
|
+
declare const getContext: (environment: Environment | null, headless: boolean | undefined, world: any, logger?: null, appName?: string | null, createStable?: boolean, web?: StableBrowser | null, moveToRight?: number, reportFolder?: string | null, initScripts?: InitScripts | null, storageState?: any | null) => Promise<any>;
|
|
7
|
+
declare const refreshBrowser: (web: any, sessionPath: string, world: any) => Promise<void>;
|
|
7
8
|
declare const closeBrowser: (browser?: Browser | PlaywrightBrowser) => Promise<void>;
|
|
8
|
-
export { getContext, closeBrowser };
|
|
9
|
+
export { getContext, closeBrowser, refreshBrowser };
|
package/lib/init_browser.js
CHANGED
|
@@ -1,103 +1,176 @@
|
|
|
1
|
-
import fs from "
|
|
1
|
+
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import { Environment } from "./environment.js";
|
|
4
4
|
import { browserManager } from "./browser_manager.js";
|
|
5
5
|
import { TestContext } from "./test_context.js";
|
|
6
6
|
import { StableBrowser } from "./stable_browser.js";
|
|
7
7
|
import { Api } from "./api.js";
|
|
8
|
-
|
|
8
|
+
import { measureAsync } from "./utils.js";
|
|
9
9
|
// init browser create context and page, if context and page are not null
|
|
10
|
-
const getContext = async function (environment, headless = false, world, logger, appName, createStable = true,
|
|
11
|
-
|
|
12
|
-
environment
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
10
|
+
const getContext = async function (environment, headless = false, world, logger, appName, createStable = true, web = null, moveToRight = -1, reportFolder = null, initScripts = null, storageState = null) {
|
|
11
|
+
return measureAsync("browser Launch", async () => {
|
|
12
|
+
if (environment === null) {
|
|
13
|
+
environment = initEnvironment();
|
|
14
|
+
}
|
|
15
|
+
if (appName && !environment.apps && !environment.apps[appName]) {
|
|
16
|
+
throw new Error(`App ${appName} not found in environment`);
|
|
17
|
+
}
|
|
18
|
+
if (appName) {
|
|
19
|
+
environment = environment.apps[appName];
|
|
20
|
+
}
|
|
21
|
+
const { cookies, origins } = environment;
|
|
22
|
+
if (cookies) {
|
|
23
|
+
for (let i = 0; i < cookies.length; i++) {
|
|
24
|
+
const cookie = cookies[i];
|
|
25
|
+
if (cookie.expires === "undefined") {
|
|
26
|
+
delete cookie.expires;
|
|
27
|
+
}
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (
|
|
38
|
-
|
|
30
|
+
let extensionPath = undefined;
|
|
31
|
+
let userDataDirPath = undefined;
|
|
32
|
+
let userAgent = undefined;
|
|
33
|
+
let aiConfigFile = "ai_config.json";
|
|
34
|
+
let channel = undefined;
|
|
35
|
+
if (process.env.PROJECT_PATH) {
|
|
36
|
+
aiConfigFile = path.join(process.env.PROJECT_PATH, "ai_config.json");
|
|
37
|
+
}
|
|
38
|
+
let configuration = {};
|
|
39
|
+
if (fs.existsSync(aiConfigFile)) {
|
|
40
|
+
configuration = JSON.parse(fs.readFileSync(aiConfigFile, "utf8"));
|
|
41
|
+
if (configuration.userDataDirPath) {
|
|
42
|
+
userDataDirPath = configuration.userDataDirPath;
|
|
43
|
+
}
|
|
44
|
+
if (configuration.extensionPath) {
|
|
45
|
+
extensionPath = configuration.extensionPath;
|
|
46
|
+
}
|
|
47
|
+
if (configuration.useGoogleChrome === true) {
|
|
48
|
+
channel = "chrome";
|
|
49
|
+
}
|
|
50
|
+
else if (configuration.useMicrosoftEdge === true) {
|
|
51
|
+
channel = "msedge";
|
|
52
|
+
}
|
|
53
|
+
if (configuration.overrideUserAgent) {
|
|
54
|
+
userAgent = configuration.overrideUserAgent;
|
|
55
|
+
}
|
|
39
56
|
}
|
|
40
|
-
|
|
41
|
-
|
|
57
|
+
let usedStorageState = null;
|
|
58
|
+
usedStorageState = { cookies, origins };
|
|
59
|
+
let downloadsPath = "downloads";
|
|
60
|
+
if (reportFolder) {
|
|
61
|
+
downloadsPath = path.join(reportFolder, "downloads");
|
|
42
62
|
}
|
|
63
|
+
else if (web && web.context && web.context.reportFolder) {
|
|
64
|
+
reportFolder = web.context.reportFolder;
|
|
65
|
+
downloadsPath = path.join(web.context.reportFolder, "downloads");
|
|
66
|
+
}
|
|
67
|
+
if (world) {
|
|
68
|
+
world.downloadsPath = downloadsPath;
|
|
69
|
+
}
|
|
70
|
+
if (web && web.context) {
|
|
71
|
+
web.context.downloadsPath = downloadsPath;
|
|
72
|
+
}
|
|
73
|
+
// check if data.json exists in the report folder
|
|
74
|
+
// and if it contain storageState field, if so, use it
|
|
75
|
+
if (reportFolder) {
|
|
76
|
+
const dataFile = path.join(reportFolder, "data.json");
|
|
77
|
+
if (fs.existsSync(dataFile)) {
|
|
78
|
+
const data = fs.readFileSync(dataFile, "utf8");
|
|
79
|
+
const dataObject = JSON.parse(data);
|
|
80
|
+
if (dataObject.storageState) {
|
|
81
|
+
console.log("Init browser with storage state");
|
|
82
|
+
usedStorageState = dataObject.storageState;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (storageState) {
|
|
87
|
+
usedStorageState = storageState;
|
|
88
|
+
}
|
|
89
|
+
let browser = await browserManager.createBrowser(headless, usedStorageState, extensionPath, userDataDirPath, reportFolder ? reportFolder : ".", userAgent, channel, configuration, initScripts);
|
|
90
|
+
let context = new TestContext();
|
|
91
|
+
context.browser = browser.browser;
|
|
92
|
+
context.browserObject = browser;
|
|
93
|
+
context.playContext = browser.context;
|
|
94
|
+
context.page = browser.page;
|
|
95
|
+
context.headless = headless;
|
|
96
|
+
context.environment = environment;
|
|
97
|
+
context.browserName = browser.browser ? browser.browser.browserType().name() : "unknown";
|
|
98
|
+
context.reportFolder = reportFolder;
|
|
99
|
+
context.initScripts = initScripts;
|
|
100
|
+
if (process.env.CDP_CONNECT_URL) {
|
|
101
|
+
// settin it to true will not navigate
|
|
102
|
+
context.navigate = true;
|
|
103
|
+
}
|
|
104
|
+
if (createStable) {
|
|
105
|
+
context.stable = new StableBrowser(context.browser, context.page, logger, context, world);
|
|
106
|
+
context.web = context.stable;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
context.stable = web;
|
|
110
|
+
context.web = web;
|
|
111
|
+
}
|
|
112
|
+
context.api = new Api(logger);
|
|
113
|
+
if (moveToRight === -1) {
|
|
114
|
+
moveToRight = parseInt(process.env.CHROME_POSITION || "-1", 10);
|
|
115
|
+
}
|
|
116
|
+
if (moveToRight > 0 && context.browserName === "chromium") {
|
|
117
|
+
const playContext = context.playContext;
|
|
118
|
+
const client = await playContext.newCDPSession(context.page);
|
|
119
|
+
const { windowId } = await client.send("Browser.getWindowForTarget");
|
|
120
|
+
const window = await client.send("Browser.getWindowBounds", {
|
|
121
|
+
windowId,
|
|
122
|
+
});
|
|
123
|
+
await client.send("Browser.setWindowBounds", {
|
|
124
|
+
windowId,
|
|
125
|
+
bounds: {
|
|
126
|
+
left: window.bounds.left + moveToRight,
|
|
127
|
+
top: 0,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
await client.detach();
|
|
131
|
+
}
|
|
132
|
+
return context;
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
const refreshBrowser = async function (web, sessionPath, world) {
|
|
136
|
+
await web.context.browserObject.close();
|
|
137
|
+
web.context.pages = [];
|
|
138
|
+
let storageState = null;
|
|
139
|
+
if (sessionPath) {
|
|
140
|
+
if (!fs.existsSync(sessionPath)) {
|
|
141
|
+
throw new Error("Session path not found: " + sessionPath);
|
|
142
|
+
}
|
|
143
|
+
const data = fs.readFileSync(sessionPath, "utf8");
|
|
144
|
+
storageState = JSON.parse(data).storageState;
|
|
43
145
|
}
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
context.
|
|
48
|
-
context.
|
|
49
|
-
|
|
50
|
-
context.
|
|
51
|
-
context.
|
|
52
|
-
context.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
context.stable = stable;
|
|
58
|
-
}
|
|
59
|
-
context.api = new Api(logger);
|
|
60
|
-
if (moveToRight > 0 && context.browserName === "chromium") {
|
|
61
|
-
// move the borwser to the top right corner of the screen
|
|
62
|
-
// create a cdp session
|
|
63
|
-
// Get CDP session
|
|
64
|
-
const playContext = context.playContext;
|
|
65
|
-
const client = await playContext.newCDPSession(context.page);
|
|
66
|
-
// Get window ID for the current target
|
|
67
|
-
const { windowId } = await client.send("Browser.getWindowForTarget");
|
|
68
|
-
//console.log(windowId);
|
|
69
|
-
// get the window for the current target
|
|
70
|
-
const window = await client.send("Browser.getWindowBounds", {
|
|
71
|
-
windowId,
|
|
72
|
-
});
|
|
73
|
-
//console.log(window);
|
|
74
|
-
await client.send("Browser.setWindowBounds", {
|
|
75
|
-
windowId,
|
|
76
|
-
bounds: {
|
|
77
|
-
left: window.bounds.left + moveToRight,
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
// close cdp
|
|
81
|
-
await client.detach();
|
|
82
|
-
}
|
|
83
|
-
// await _initCookies(context);
|
|
84
|
-
return context;
|
|
146
|
+
const newContext = await getContext(web.context.environment, web.context.headless, world, null, web.context.appName, false, web, -1, web.context.reportFolder, web.context.initScripts, storageState);
|
|
147
|
+
web.context.browser = newContext.browser;
|
|
148
|
+
web.context.browserObject = newContext.browserObject;
|
|
149
|
+
web.context.playContext = newContext.playContext;
|
|
150
|
+
web.context.page = newContext.page;
|
|
151
|
+
web.page = newContext.page;
|
|
152
|
+
web.context.pages.push(newContext.page);
|
|
153
|
+
web.context.headless = newContext.headless;
|
|
154
|
+
web.context.environment = newContext.environment;
|
|
155
|
+
web.context.browserName = newContext.browserName;
|
|
156
|
+
web.context.reportFolder = newContext.reportFolder;
|
|
157
|
+
web.context.initScripts = newContext.initScripts;
|
|
158
|
+
await web.goto(web.context.environment.baseUrl);
|
|
85
159
|
};
|
|
86
160
|
const closeBrowser = async function (browser) {
|
|
87
161
|
await browserManager.closeBrowser(browser);
|
|
88
162
|
};
|
|
89
163
|
const initEnvironment = function () {
|
|
90
|
-
// if (environment === null) {
|
|
91
164
|
const environment = new Environment();
|
|
92
165
|
try {
|
|
93
166
|
let envFile = "";
|
|
94
167
|
const envArgVal = checkForEnvArg();
|
|
95
|
-
if (
|
|
96
|
-
envFile = envArgVal;
|
|
97
|
-
}
|
|
98
|
-
else if (process.env.BLINQ_ENV) {
|
|
168
|
+
if (process.env.BLINQ_ENV) {
|
|
99
169
|
envFile = process.env.BLINQ_ENV;
|
|
100
170
|
}
|
|
171
|
+
else if (envArgVal) {
|
|
172
|
+
envFile = envArgVal;
|
|
173
|
+
}
|
|
101
174
|
else if (fs.existsSync(path.join(process.cwd(), "env.json"))) {
|
|
102
175
|
envFile = path.join(process.cwd(), "env.json");
|
|
103
176
|
}
|
|
@@ -111,19 +184,23 @@ const initEnvironment = function () {
|
|
|
111
184
|
}
|
|
112
185
|
}
|
|
113
186
|
}
|
|
114
|
-
|
|
187
|
+
if (!envFile || !fs.existsSync(envFile)) {
|
|
188
|
+
throw new Error(envFile + " not found");
|
|
189
|
+
}
|
|
115
190
|
const data = fs.readFileSync(envFile, "utf8");
|
|
116
|
-
//console.log("data", data);
|
|
117
191
|
const envObject = JSON.parse(data);
|
|
118
|
-
//console.log("envObject", envObject);
|
|
119
192
|
Object.assign(environment, envObject);
|
|
120
|
-
|
|
193
|
+
if (process.env.FAST_MODE === "true") {
|
|
194
|
+
console.log("Fast mode enabled");
|
|
195
|
+
}
|
|
196
|
+
if (process.env.SCREENSHOT_ON_FAILURE_ONLY === "true") {
|
|
197
|
+
console.log("Screenshot on failure only mode enabled");
|
|
198
|
+
}
|
|
121
199
|
console.log("Base url: " + environment.baseUrl);
|
|
122
200
|
}
|
|
123
201
|
catch (err) {
|
|
124
202
|
console.error("Error reading env.json", err);
|
|
125
203
|
}
|
|
126
|
-
// }
|
|
127
204
|
return environment;
|
|
128
205
|
};
|
|
129
206
|
const checkForEnvArg = function () {
|
|
@@ -137,5 +214,5 @@ const checkForEnvArg = function () {
|
|
|
137
214
|
}
|
|
138
215
|
return null;
|
|
139
216
|
};
|
|
140
|
-
export { getContext, closeBrowser };
|
|
217
|
+
export { getContext, closeBrowser, refreshBrowser };
|
|
141
218
|
//# sourceMappingURL=init_browser.js.map
|
package/lib/init_browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init_browser.js","sourceRoot":"","sources":["../../src/init_browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"init_browser.js","sourceRoot":"","sources":["../../src/init_browser.ts"],"names":[],"mappings":"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"}
|
package/lib/locate_element.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import axios from "axios";
|
|
2
2
|
import * as path from "path";
|
|
3
3
|
import { fileURLToPath } from "url";
|
|
4
|
+
import { _getServerUrl } from "./utils.js";
|
|
4
5
|
// Get __filename and __dirname in ESM
|
|
5
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
7
|
const __dirname = path.dirname(__filename);
|
|
@@ -8,15 +9,15 @@ export async function locate_element(context, elementDescription, operation = "c
|
|
|
8
9
|
// load the axe-core library to all of the frames in the page
|
|
9
10
|
// read the axe-core library from the file system placed in the same folder as the script file, name axe.mini.js
|
|
10
11
|
// Construct the path to axe.min.js relative to the current file
|
|
11
|
-
let axeMinJsPath = path.join(__dirname, "..", "
|
|
12
|
-
// Check if the file exists
|
|
13
|
-
if (!fs.existsSync(axeMinJsPath)) {
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
// Read the content of axe.min.js synchronously
|
|
17
|
-
const axeMinJsContent = fs.readFileSync(axeMinJsPath, "utf-8");
|
|
18
|
-
await Promise.all(context.
|
|
19
|
-
const frames = await context.
|
|
12
|
+
// let axeMinJsPath = path.join(__dirname, "..", "scripts", "axe.mini.js");
|
|
13
|
+
// // Check if the file exists
|
|
14
|
+
// if (!fs.existsSync(axeMinJsPath)) {
|
|
15
|
+
// axeMinJsPath = path.join(__dirname, "scripts", "axe.mini.js");
|
|
16
|
+
// }
|
|
17
|
+
// // Read the content of axe.min.js synchronously
|
|
18
|
+
// const axeMinJsContent = fs.readFileSync(axeMinJsPath, "utf-8");
|
|
19
|
+
// await Promise.all(context.web.page.frames().map((frame: any) => frame.evaluate(axeMinJsContent)));
|
|
20
|
+
const frames = await context.web.page.frames();
|
|
20
21
|
// for each frame create a tree of the accessibility nodes
|
|
21
22
|
const frameDump = [];
|
|
22
23
|
let iframeIndex = 0;
|
|
@@ -170,11 +171,12 @@ export async function locate_element(context, elementDescription, operation = "c
|
|
|
170
171
|
}
|
|
171
172
|
}
|
|
172
173
|
traverseDFS(frameDump[0]);
|
|
173
|
-
let serviceUrl =
|
|
174
|
-
const
|
|
175
|
-
method: "
|
|
174
|
+
let serviceUrl = _getServerUrl();
|
|
175
|
+
const config = {
|
|
176
|
+
method: "post",
|
|
176
177
|
url: `${serviceUrl}/api/runs/locate-element/locate`,
|
|
177
178
|
headers: {
|
|
179
|
+
"x-source": "true",
|
|
178
180
|
"Content-Type": "application/json",
|
|
179
181
|
Authorization: `Bearer ${process.env.TOKEN}`,
|
|
180
182
|
},
|
|
@@ -185,7 +187,7 @@ export async function locate_element(context, elementDescription, operation = "c
|
|
|
185
187
|
value: value,
|
|
186
188
|
}),
|
|
187
189
|
};
|
|
188
|
-
let result = await
|
|
190
|
+
let result = await axios.request(config);
|
|
189
191
|
//console.log(JSON.stringify(frameDump[0]));
|
|
190
192
|
if (result.status !== 200 || !result.data || result.data.status !== true || !result.data.result) {
|
|
191
193
|
console.error("Failed to locate element");
|