sefiutils 1.4.1 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/fiberUtils.js +5 -5
- package/lib/fiberUtils.js.map +1 -1
- package/lib/globalSetup.js +14 -17
- package/lib/globalSetup.js.map +1 -1
- package/lib/localSetup.js +27 -34
- package/lib/localSetup.js.map +1 -1
- package/lib/seUtils.d.ts +23 -4
- package/lib/seUtils.d.ts.map +1 -1
- package/lib/seUtils.js +15 -2
- package/lib/seUtils.js.map +1 -1
- package/package.json +5 -5
- package/src/fiberUtils.ts +1 -1
- package/src/globalSetup.ts +4 -7
- package/src/localSetup.ts +13 -21
- package/src/seUtils.ts +33 -3
package/lib/fiberUtils.js
CHANGED
|
@@ -6,9 +6,9 @@ exports.findInComponentTree = findInComponentTree;
|
|
|
6
6
|
exports.findAllInComponentTree = findAllInComponentTree;
|
|
7
7
|
exports.componentPathExists = componentPathExists;
|
|
8
8
|
exports.retrieveComponentPath = retrieveComponentPath;
|
|
9
|
-
const
|
|
9
|
+
const seUtils_js_1 = require("./seUtils.js");
|
|
10
10
|
async function getReactComponentTree(driver, functionComponentsOnly = true) {
|
|
11
|
-
const cmpTree = await (0,
|
|
11
|
+
const cmpTree = await (0, seUtils_js_1.execScript)(driver, "execScripts/fiber.js", functionComponentsOnly ? "uniDirFunctionComponentsTree" : "uniDirComponentsTree");
|
|
12
12
|
return cmpTree;
|
|
13
13
|
}
|
|
14
14
|
function dumpComponentTree(node, options = { showProps: true, showKind: true }) {
|
|
@@ -69,7 +69,7 @@ function componentPathExists(root, path, options = {}) {
|
|
|
69
69
|
if (path.length === 0) {
|
|
70
70
|
return true;
|
|
71
71
|
}
|
|
72
|
-
if ((0,
|
|
72
|
+
if ((0, seUtils_js_1.cmpStrings)(root.name, path[0], options)) {
|
|
73
73
|
if (path.length === 1) {
|
|
74
74
|
return true;
|
|
75
75
|
}
|
|
@@ -95,7 +95,7 @@ function retrieveComponentPath(root, startComponent, endComponent, options = {})
|
|
|
95
95
|
if (!root) {
|
|
96
96
|
throw new Error("No components found.");
|
|
97
97
|
}
|
|
98
|
-
const startNodes = findAllInComponentTree(root, (node) => (0,
|
|
98
|
+
const startNodes = findAllInComponentTree(root, (node) => (0, seUtils_js_1.cmpStrings)(node.name, startComponent, options));
|
|
99
99
|
for (const start of startNodes) {
|
|
100
100
|
const path = findEnd(start, []);
|
|
101
101
|
if (path) {
|
|
@@ -105,7 +105,7 @@ function retrieveComponentPath(root, startComponent, endComponent, options = {})
|
|
|
105
105
|
return [];
|
|
106
106
|
function findEnd(node, path) {
|
|
107
107
|
const newPath = [...path, node.name];
|
|
108
|
-
if ((0,
|
|
108
|
+
if ((0, seUtils_js_1.cmpStrings)(node.name, endComponent, options)) {
|
|
109
109
|
return newPath;
|
|
110
110
|
}
|
|
111
111
|
for (const child of node.children) {
|
package/lib/fiberUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fiberUtils.js","sourceRoot":"","sources":["../src/fiberUtils.ts"],"names":[],"mappings":";;AAaA,sDAKC;AAGD,8CAoBC;AAKD,kDAWC;AAED,wDAcC;AAOD,kDA0BC;AAOD,sDA+BC;AA/ID,
|
|
1
|
+
{"version":3,"file":"fiberUtils.js","sourceRoot":"","sources":["../src/fiberUtils.ts"],"names":[],"mappings":"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"}
|
package/lib/globalSetup.js
CHANGED
|
@@ -44,8 +44,8 @@ const fs_1 = __importStar(require("fs"));
|
|
|
44
44
|
const promises_1 = require("fs/promises");
|
|
45
45
|
const os_1 = require("os");
|
|
46
46
|
const path_1 = __importDefault(require("path"));
|
|
47
|
-
const
|
|
48
|
-
const
|
|
47
|
+
const log_js_1 = require("./log.js");
|
|
48
|
+
const seUtils_js_1 = require("./seUtils.js");
|
|
49
49
|
const geckodriver_1 = require("geckodriver");
|
|
50
50
|
/**
|
|
51
51
|
* This function is called by Jest once before all tests are executed.
|
|
@@ -66,7 +66,7 @@ const geckodriver_1 = require("geckodriver");
|
|
|
66
66
|
*/
|
|
67
67
|
async function setGlobalObjects() {
|
|
68
68
|
const browser = process.env.SEFI_BROWSER || "remote";
|
|
69
|
-
(0,
|
|
69
|
+
(0, log_js_1.verbose)(`Global Setup: Use browser: ${browser}`);
|
|
70
70
|
try {
|
|
71
71
|
if (browser === "remote") {
|
|
72
72
|
await setUpSeleniumServer();
|
|
@@ -97,7 +97,7 @@ async function getSeleniumServerJar() {
|
|
|
97
97
|
const jarName = `selenium-server-${versionParts[0]}.${versionParts[1]}.${versionParts[2]}.jar`;
|
|
98
98
|
const homeDir = process.env.SEFI_SELENIUM_CACHE_FOLDER || (0, os_1.homedir)();
|
|
99
99
|
const cachedPath = path_1.default.resolve(path_1.default.join(homeDir, ".cache", "selenium-server", jarName));
|
|
100
|
-
(0,
|
|
100
|
+
(0, log_js_1.verbose)(`Selenium server jar: ${cachedPath}`);
|
|
101
101
|
if (!fs_1.default.existsSync(cachedPath)) {
|
|
102
102
|
if (!fs_1.default.existsSync(path_1.default.dirname(cachedPath))) {
|
|
103
103
|
fs_1.default.mkdirSync(path_1.default.dirname(cachedPath), { recursive: true });
|
|
@@ -114,24 +114,21 @@ async function getSeleniumServerJar() {
|
|
|
114
114
|
(0, fs_1.writeFileSync)(cachedPath, buffer);
|
|
115
115
|
}
|
|
116
116
|
else {
|
|
117
|
-
(0,
|
|
117
|
+
(0, log_js_1.verbose)(`Selenium server jar already cached`);
|
|
118
118
|
}
|
|
119
119
|
return cachedPath;
|
|
120
120
|
}
|
|
121
121
|
async function setUpSeleniumServer() {
|
|
122
|
-
(0,
|
|
123
|
-
//
|
|
124
|
-
|
|
125
|
-
// If it is not found, an error is fine.
|
|
126
|
-
//@ts-ignore
|
|
127
|
-
const remote = await import("selenium-webdriver/remote");
|
|
122
|
+
(0, log_js_1.debug)("Dynamic import of selenium-webdriver/remote");
|
|
123
|
+
// @ts-expect-error Types not correctly set
|
|
124
|
+
const remote = await import("selenium-webdriver/remote/index.js");
|
|
128
125
|
const jarPath = await getSeleniumServerJar();
|
|
129
126
|
if (globalThis.server) {
|
|
130
127
|
await globalThis.server.kill();
|
|
131
|
-
(0,
|
|
128
|
+
(0, log_js_1.verbose)("`Server killed before starting again");
|
|
132
129
|
}
|
|
133
|
-
const { port } = (0,
|
|
134
|
-
(0,
|
|
130
|
+
const { port } = (0, seUtils_js_1.getRemoteAddressAndPort)();
|
|
131
|
+
(0, log_js_1.debug)(() => `Start selenium server at 127.0.0.1:${port} with SE_NODE_MAX_SESSIONS=4, SE_NODE_OVERRIDE_MAX_SESSIONS=true`);
|
|
135
132
|
const s = new remote.SeleniumServer(jarPath, {
|
|
136
133
|
loopback: true,
|
|
137
134
|
port: port,
|
|
@@ -146,12 +143,12 @@ async function setUpSeleniumServer() {
|
|
|
146
143
|
}
|
|
147
144
|
});
|
|
148
145
|
const timeout = parseInt(process.env.SEFI_SELENIUM_SERVER_START_TIMEOUT || "5000");
|
|
149
|
-
(0,
|
|
146
|
+
(0, log_js_1.debug)(() => `Selenium server created, start server with timeout ${timeout}`);
|
|
150
147
|
try {
|
|
151
148
|
const actualAddress = await s.start(timeout);
|
|
152
149
|
globalThis.server = s;
|
|
153
150
|
// const address = await globalThis.server.address()
|
|
154
|
-
(0,
|
|
151
|
+
(0, log_js_1.debug)(() => `Selenium server started at: ${actualAddress}`);
|
|
155
152
|
}
|
|
156
153
|
catch (err) {
|
|
157
154
|
console.error(`Error starting selenium server: ${err}`);
|
|
@@ -174,7 +171,7 @@ async function setUpSeleniumServer() {
|
|
|
174
171
|
const actualAddress = await s.start(timeout);
|
|
175
172
|
globalThis.server = s;
|
|
176
173
|
// const address = await globalThis.server.address()
|
|
177
|
-
(0,
|
|
174
|
+
(0, log_js_1.debug)(() => `Selenium server started at: ${actualAddress}`);
|
|
178
175
|
}
|
|
179
176
|
catch (err) {
|
|
180
177
|
console.error(`Hint: ${step}: ${err}`);
|
package/lib/globalSetup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalSetup.js","sourceRoot":"","sources":["../src/globalSetup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,mCAYC;AAaD,oDA4BC;AArFD,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAA,CAAC,cAAc;AAE9B,yCAAuC;AACvC,0CAAmC;AACnC,2BAA6B;AAC7B,gDAAwB;AACxB
|
|
1
|
+
{"version":3,"file":"globalSetup.js","sourceRoot":"","sources":["../src/globalSetup.ts"],"names":[],"mappings":"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"}
|
package/lib/localSetup.js
CHANGED
|
@@ -8,19 +8,19 @@ exports.localSetup = localSetup;
|
|
|
8
8
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
9
9
|
dotenv_1.default.config(); // read ".env"
|
|
10
10
|
const selenium_webdriver_1 = require("selenium-webdriver");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
11
|
+
const log_js_1 = require("./log.js");
|
|
12
|
+
const seUtils_js_1 = require("./seUtils.js");
|
|
13
13
|
exports.LOCAL_SETUP_TIMEOUT = process.env.VSCODE_INSPECTOR_OPTIONS ? 999999 : 20000;
|
|
14
14
|
// console.log("LOCAL_SETUP_TIMEOUT: ", LOCAL_SETUP_TIMEOUT);
|
|
15
15
|
// console.log("VSCODE_INSPECTOR_OPTIONS: ", process.env.VSCODE_INSPECTOR_OPTIONS);
|
|
16
16
|
async function localSetup(page, width = 500, height = 500, acceptUntrustedCertificates = true) {
|
|
17
|
-
(0,
|
|
17
|
+
(0, log_js_1.debug)(() => `localSetup("${page}", ${width}, ${height}, ${acceptUntrustedCertificates}), getWebDriver ...`);
|
|
18
18
|
const driver = await getWebDriver(acceptUntrustedCertificates, width, height);
|
|
19
|
-
(0,
|
|
19
|
+
(0, log_js_1.verbose)(() => `Driver started, load page: ${page}`);
|
|
20
20
|
await driver.get(page);
|
|
21
|
-
(0,
|
|
22
|
-
await (0,
|
|
23
|
-
(0,
|
|
21
|
+
(0, log_js_1.debug)(() => `Page loaded, set browser window size: ${width}x${height}`);
|
|
22
|
+
await (0, seUtils_js_1.setBrowserWindowSize)(driver, width, height);
|
|
23
|
+
(0, log_js_1.debug)("Page loaded and window size set, local setup done, return driver.");
|
|
24
24
|
return driver;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
@@ -34,7 +34,7 @@ async function localSetup(page, width = 500, height = 500, acceptUntrustedCertif
|
|
|
34
34
|
*/
|
|
35
35
|
async function getWebDriver(acceptUntrustedCertificates, width, height) {
|
|
36
36
|
const browser = process.env.SEFI_BROWSER || "remote";
|
|
37
|
-
(0,
|
|
37
|
+
(0, log_js_1.debug)(() => `Use browser: ${browser}`);
|
|
38
38
|
try {
|
|
39
39
|
if (browser === "chrome") {
|
|
40
40
|
return await setUpWebDriverChrome(acceptUntrustedCertificates, width, height);
|
|
@@ -55,13 +55,9 @@ async function getWebDriver(acceptUntrustedCertificates, width, height) {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
async function setUpWebDriverInDocker(acceptUntrustedCertificates, width, height) {
|
|
58
|
-
(0,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// If it is not found, an error is fine.
|
|
62
|
-
//@ts-ignore
|
|
63
|
-
const firefox = await import('selenium-webdriver/firefox');
|
|
64
|
-
const { address, port } = (0, seUtils_1.getRemoteAddressAndPort)();
|
|
58
|
+
(0, log_js_1.debug)("Dynamic import of selenium-webdriver/firefox for remote browser");
|
|
59
|
+
const firefox = await import('selenium-webdriver/firefox.js');
|
|
60
|
+
const { address, port } = (0, seUtils_js_1.getRemoteAddressAndPort)();
|
|
65
61
|
const start = Date.now();
|
|
66
62
|
const options = new firefox.Options().addArguments("-headless");
|
|
67
63
|
options.setAcceptInsecureCerts(acceptUntrustedCertificates);
|
|
@@ -71,13 +67,13 @@ async function setUpWebDriverInDocker(acceptUntrustedCertificates, width, height
|
|
|
71
67
|
process.env.MOZ_HEADLESS_WIDTH = String(width);
|
|
72
68
|
process.env.MOZ_HEADLESS_HEIGHT = String(height);
|
|
73
69
|
}
|
|
74
|
-
(0,
|
|
70
|
+
(0, log_js_1.debug)(() => `Start headless firefox, remote server at ${address}`);
|
|
75
71
|
const driver = await new selenium_webdriver_1.Builder()
|
|
76
72
|
.usingServer(address)
|
|
77
73
|
.withCapabilities(selenium_webdriver_1.Capabilities.firefox())
|
|
78
74
|
.setFirefoxOptions(options)
|
|
79
75
|
.build();
|
|
80
|
-
(0,
|
|
76
|
+
(0, log_js_1.debug)(() => {
|
|
81
77
|
const duration = (Date.now() - start) / 1000;
|
|
82
78
|
return `Driver resolved and connected, required ${duration}s.`;
|
|
83
79
|
});
|
|
@@ -93,20 +89,22 @@ async function setUpWebDriverInDocker(acceptUntrustedCertificates, width, height
|
|
|
93
89
|
* are to be called.
|
|
94
90
|
*/
|
|
95
91
|
async function setUpWebDriverChrome(acceptUntrustedCertificates, width, height) {
|
|
96
|
-
(0,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
92
|
+
(0, log_js_1.debug)("Dynamic import of chromedriver and selenium-webdriver/chrome");
|
|
93
|
+
try {
|
|
94
|
+
// @ts-expect-error Is optional dependency, if not found, an error is fine.
|
|
95
|
+
await import('chromedriver');
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
console.error(`Error importing chromedriver, make sure it is installed as a dependency: ${err}`);
|
|
99
|
+
throw err;
|
|
100
|
+
}
|
|
101
|
+
const chrome = await import('selenium-webdriver/chrome.js');
|
|
104
102
|
const options = (new chrome.Options().addArguments("--headless=new"));
|
|
105
103
|
options.setAcceptInsecureCerts(acceptUntrustedCertificates);
|
|
106
104
|
if (width && height) { // cf. https://www.geeksforgeeks.org/how-to-set-browser-width-and-height-in-selenium-webdriver/
|
|
107
105
|
options.addArguments("--window-size=" + width + "," + height);
|
|
108
106
|
}
|
|
109
|
-
(0,
|
|
107
|
+
(0, log_js_1.debug)(() => `Start headless chrome`);
|
|
110
108
|
const driver = await new selenium_webdriver_1.Builder()
|
|
111
109
|
.forBrowser('chrome')
|
|
112
110
|
.setChromeOptions(options)
|
|
@@ -123,14 +121,9 @@ async function setUpWebDriverChrome(acceptUntrustedCertificates, width, height)
|
|
|
123
121
|
* are to be called.
|
|
124
122
|
*/
|
|
125
123
|
async function setUpWebDriverFirefox(acceptUntrustedCertificates, width, height) {
|
|
126
|
-
(0,
|
|
127
|
-
// Note: we need to import the selenium firefox driver dynamically, because it is not needed in non-remote mode and
|
|
128
|
-
// it is a heavy dependency with many transitive dependencies
|
|
129
|
-
// If it is not found, an error is fine.
|
|
130
|
-
//@ts-ignore
|
|
124
|
+
(0, log_js_1.debug)("Dynamic import of geckodriver and selenium-webdriver/firefox");
|
|
131
125
|
await import('geckodriver'); // installed geckodriver will cause remote configuration to fail in docker...
|
|
132
|
-
|
|
133
|
-
const firefox = await import('selenium-webdriver/firefox');
|
|
126
|
+
const firefox = await import('selenium-webdriver/firefox.js');
|
|
134
127
|
const options = new firefox.Options();
|
|
135
128
|
options.addArguments("-headless");
|
|
136
129
|
if (width && height) { // cf. https://github.com/SeleniumHQ/selenium/pull/6075
|
|
@@ -140,7 +133,7 @@ async function setUpWebDriverFirefox(acceptUntrustedCertificates, width, height)
|
|
|
140
133
|
process.env.MOZ_HEADLESS_HEIGHT = String(height);
|
|
141
134
|
}
|
|
142
135
|
options.setAcceptInsecureCerts(acceptUntrustedCertificates);
|
|
143
|
-
(0,
|
|
136
|
+
(0, log_js_1.debug)(() => `Start headless firefox`);
|
|
144
137
|
const driver = await new selenium_webdriver_1.Builder()
|
|
145
138
|
.forBrowser('firefox')
|
|
146
139
|
.setFirefoxOptions(options)
|
package/lib/localSetup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localSetup.js","sourceRoot":"","sources":["../src/localSetup.ts"],"names":[],"mappings":";;;;;;AAYA,gCASC;AArBD,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAA,CAAC,cAAc;AAE9B,2DAAsE;AACtE
|
|
1
|
+
{"version":3,"file":"localSetup.js","sourceRoot":"","sources":["../src/localSetup.ts"],"names":[],"mappings":"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"}
|
package/lib/seUtils.d.ts
CHANGED
|
@@ -1,18 +1,36 @@
|
|
|
1
1
|
import { Locator, WebDriver, WebElement } from 'selenium-webdriver';
|
|
2
|
+
/**
|
|
3
|
+
* Waits for SEFI_PAGE_UPDATE_TIME (or 500 by default) ms to let the page update after an action, e.g. after a click or after setting the window size.
|
|
4
|
+
* This is needed, because the page may need some time to update after an action,
|
|
5
|
+
* e.g. to re-render the page after a click or to update the bounding client rects after setting the window size.
|
|
6
|
+
*/
|
|
7
|
+
export declare function letThePageUpdate(): Promise<void>;
|
|
2
8
|
export declare function getRemoteAddressAndPort(): {
|
|
3
9
|
address: string;
|
|
4
10
|
port: number;
|
|
5
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Options for function {@link cmpStrings}
|
|
14
|
+
*/
|
|
15
|
+
type CmpStringsOptions = {
|
|
16
|
+
/**
|
|
17
|
+
* Compares strings ignoring case. Ignored if the second parameter is a regex, since regexes can already be defined to ignore case.
|
|
18
|
+
*/
|
|
19
|
+
ignoreCase?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* If true, the string is split at the first "$" and only the part before is compared. This is useful for comparing React component names,
|
|
22
|
+
* which often have a suffix like "$1", "$2" etc. to distinguish different instances of the same component.
|
|
23
|
+
*/
|
|
24
|
+
stripAfterDollar?: boolean;
|
|
25
|
+
};
|
|
6
26
|
/**
|
|
7
27
|
* Compares a given string with either a string or a regex.
|
|
8
28
|
* @param str string to compare
|
|
9
29
|
* @param stringOrRegEx string or regex to compare with
|
|
10
|
-
* @param options
|
|
30
|
+
* @param options see {@link CmpStringsOptions}
|
|
11
31
|
* @returns
|
|
12
32
|
*/
|
|
13
|
-
export declare function cmpStrings(str: string | undefined, stringOrRegEx: undefined | string | RegExp, options?:
|
|
14
|
-
ignoreCase?: boolean;
|
|
15
|
-
}): boolean;
|
|
33
|
+
export declare function cmpStrings(str: string | undefined, stringOrRegEx: undefined | string | RegExp, options?: CmpStringsOptions): boolean;
|
|
16
34
|
export declare function execScript<T>(driver: WebDriver, scriptName: string, fct: string): Promise<T>;
|
|
17
35
|
export interface Bounds {
|
|
18
36
|
top: number;
|
|
@@ -246,4 +264,5 @@ export declare function editDistance(a: string, b: string, maxDistance: number):
|
|
|
246
264
|
* Returns true if the two web elements are equal, i.e. have the same id or same tag, location, and size.
|
|
247
265
|
*/
|
|
248
266
|
export declare function equalWebElements(a: WebElement | null | undefined, b: WebElement | null | undefined): Promise<boolean>;
|
|
267
|
+
export {};
|
|
249
268
|
//# sourceMappingURL=seUtils.d.ts.map
|
package/lib/seUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seUtils.d.ts","sourceRoot":"","sources":["../src/seUtils.ts"],"names":[],"mappings":"AAUA,OAAO,EAAkB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEpF,wBAAgB,uBAAuB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE,CAI5E;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE
|
|
1
|
+
{"version":3,"file":"seUtils.d.ts","sourceRoot":"","sources":["../src/seUtils.ts"],"names":[],"mappings":"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"}
|
package/lib/seUtils.js
CHANGED
|
@@ -36,6 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.letThePageUpdate = letThePageUpdate;
|
|
39
40
|
exports.getRemoteAddressAndPort = getRemoteAddressAndPort;
|
|
40
41
|
exports.cmpStrings = cmpStrings;
|
|
41
42
|
exports.execScript = execScript;
|
|
@@ -87,6 +88,15 @@ const fs = __importStar(require("fs"));
|
|
|
87
88
|
const fsPromises = __importStar(require("fs/promises"));
|
|
88
89
|
const path_1 = __importDefault(require("path"));
|
|
89
90
|
const selenium_webdriver_1 = require("selenium-webdriver");
|
|
91
|
+
/**
|
|
92
|
+
* Waits for SEFI_PAGE_UPDATE_TIME (or 500 by default) ms to let the page update after an action, e.g. after a click or after setting the window size.
|
|
93
|
+
* This is needed, because the page may need some time to update after an action,
|
|
94
|
+
* e.g. to re-render the page after a click or to update the bounding client rects after setting the window size.
|
|
95
|
+
*/
|
|
96
|
+
async function letThePageUpdate() {
|
|
97
|
+
const waitFor = parseInt(process.env.SEFI_PAGE_UPDATE_TIME || "500");
|
|
98
|
+
return await new Promise((resolve, _reject) => setTimeout(resolve, waitFor));
|
|
99
|
+
}
|
|
90
100
|
function getRemoteAddressAndPort() {
|
|
91
101
|
const address = process.env.SEFI_SELENIUM_REMOTE_URL || "http://localhost:4444/wd/hub";
|
|
92
102
|
const port = Number(address.match(/:(\d+)\/?/)?.[1] || 80);
|
|
@@ -96,7 +106,7 @@ function getRemoteAddressAndPort() {
|
|
|
96
106
|
* Compares a given string with either a string or a regex.
|
|
97
107
|
* @param str string to compare
|
|
98
108
|
* @param stringOrRegEx string or regex to compare with
|
|
99
|
-
* @param options
|
|
109
|
+
* @param options see {@link CmpStringsOptions}
|
|
100
110
|
* @returns
|
|
101
111
|
*/
|
|
102
112
|
function cmpStrings(str, stringOrRegEx, options) {
|
|
@@ -106,6 +116,9 @@ function cmpStrings(str, stringOrRegEx, options) {
|
|
|
106
116
|
if (str === null || str === undefined) {
|
|
107
117
|
return false;
|
|
108
118
|
}
|
|
119
|
+
if (options?.stripAfterDollar) {
|
|
120
|
+
str = str.split("$")[0];
|
|
121
|
+
}
|
|
109
122
|
if (stringOrRegEx instanceof RegExp) {
|
|
110
123
|
return stringOrRegEx.test(str);
|
|
111
124
|
}
|
|
@@ -813,7 +826,7 @@ async function getInputElementByLabel(driver, labelCandidates, typeHints, positi
|
|
|
813
826
|
for (const webElement of inputFields) {
|
|
814
827
|
const type = (await webElement.getAttribute("type"))?.toLowerCase();
|
|
815
828
|
const tag = (await webElement.getTagName()).toLowerCase();
|
|
816
|
-
if (typeHints.includes(type) || typeHints.includes(tag)) {
|
|
829
|
+
if ((type && typeHints.includes(type)) || typeHints.includes(tag)) {
|
|
817
830
|
if (pos >= positionHint) {
|
|
818
831
|
return [webElement, undefined, "type"];
|
|
819
832
|
}
|
package/lib/seUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seUtils.js","sourceRoot":"","sources":["../src/seUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seUtils.js","sourceRoot":"","sources":["../src/seUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sefiutils",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "Utilities (and Jest/Vitest tests) for Selenium Webdriver Tests and some React tools as well",
|
|
5
5
|
"author": "Jens von Pilgrim <jens.vonpilgrim@bht-berlin.de>",
|
|
6
6
|
"license": "EPL-2.0",
|
|
@@ -23,17 +23,17 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"dotenv": "^17.4.2",
|
|
25
25
|
"geckodriver": "^6.1.0",
|
|
26
|
-
"selenium-webdriver": "^4.
|
|
26
|
+
"selenium-webdriver": "^4.44.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/jest": "^30.0.0",
|
|
30
30
|
"@types/node": "^25.6.0",
|
|
31
|
-
"@types/selenium-webdriver": "^4.35.
|
|
31
|
+
"@types/selenium-webdriver": "^4.35.6",
|
|
32
32
|
"copyfiles": "^2.4.1",
|
|
33
|
-
"jest": "^30.
|
|
33
|
+
"jest": "^30.4.2",
|
|
34
34
|
"jest-junit": "^17.0.0",
|
|
35
35
|
"rimraf": "^6.1.3",
|
|
36
|
-
"ts-jest": "^29.4.
|
|
36
|
+
"ts-jest": "^29.4.11",
|
|
37
37
|
"typescript": "^6.0.3"
|
|
38
38
|
}
|
|
39
39
|
}
|
package/src/fiberUtils.ts
CHANGED
package/src/globalSetup.ts
CHANGED
|
@@ -5,8 +5,8 @@ import fs, { writeFileSync } from "fs";
|
|
|
5
5
|
import { stat } from "fs/promises";
|
|
6
6
|
import { homedir } from "os";
|
|
7
7
|
import path from "path";
|
|
8
|
-
import { debug, verbose } from "./log";
|
|
9
|
-
import { getRemoteAddressAndPort } from "./seUtils";
|
|
8
|
+
import { debug, verbose } from "./log.js";
|
|
9
|
+
import { getRemoteAddressAndPort } from "./seUtils.js";
|
|
10
10
|
import { download } from "geckodriver";
|
|
11
11
|
|
|
12
12
|
declare global {
|
|
@@ -88,11 +88,8 @@ export async function getSeleniumServerJar() {
|
|
|
88
88
|
|
|
89
89
|
async function setUpSeleniumServer() {
|
|
90
90
|
debug("Dynamic import of selenium-webdriver/remote")
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
// If it is not found, an error is fine.
|
|
94
|
-
//@ts-ignore
|
|
95
|
-
const remote = await import("selenium-webdriver/remote");
|
|
91
|
+
// @ts-expect-error Types not correctly set
|
|
92
|
+
const remote = await import("selenium-webdriver/remote/index.js");
|
|
96
93
|
|
|
97
94
|
const jarPath = await getSeleniumServerJar();
|
|
98
95
|
|
package/src/localSetup.ts
CHANGED
|
@@ -2,9 +2,9 @@ import dotenv from "dotenv";
|
|
|
2
2
|
dotenv.config() // read ".env"
|
|
3
3
|
|
|
4
4
|
import { Builder, Capabilities, WebDriver } from "selenium-webdriver";
|
|
5
|
-
import { debug, verbose } from "./log";
|
|
6
|
-
import { getRemoteAddressAndPort, setBrowserWindowSize } from "./seUtils";
|
|
7
|
-
import { Options } from "selenium-webdriver/chrome";
|
|
5
|
+
import { debug, verbose } from "./log.js";
|
|
6
|
+
import { getRemoteAddressAndPort, setBrowserWindowSize } from "./seUtils.js";
|
|
7
|
+
import type { Options } from "selenium-webdriver/chrome.js";
|
|
8
8
|
|
|
9
9
|
export const LOCAL_SETUP_TIMEOUT = process.env.VSCODE_INSPECTOR_OPTIONS ? 999999 : 20000;
|
|
10
10
|
// console.log("LOCAL_SETUP_TIMEOUT: ", LOCAL_SETUP_TIMEOUT);
|
|
@@ -53,11 +53,7 @@ async function getWebDriver(acceptUntrustedCertificates: boolean, width?: number
|
|
|
53
53
|
|
|
54
54
|
async function setUpWebDriverInDocker(acceptUntrustedCertificates: boolean, width?: number, height?: number) {
|
|
55
55
|
debug("Dynamic import of selenium-webdriver/firefox for remote browser");
|
|
56
|
-
|
|
57
|
-
// it is a heavy dependency with many transitive dependencies
|
|
58
|
-
// If it is not found, an error is fine.
|
|
59
|
-
//@ts-ignore
|
|
60
|
-
const firefox = await import('selenium-webdriver/firefox');
|
|
56
|
+
const firefox = await import('selenium-webdriver/firefox.js');
|
|
61
57
|
|
|
62
58
|
const { address, port } = getRemoteAddressAndPort();
|
|
63
59
|
const start = Date.now();
|
|
@@ -97,13 +93,14 @@ async function setUpWebDriverInDocker(acceptUntrustedCertificates: boolean, widt
|
|
|
97
93
|
*/
|
|
98
94
|
async function setUpWebDriverChrome(acceptUntrustedCertificates: boolean, width?: number, height?: number) {
|
|
99
95
|
debug("Dynamic import of chromedriver and selenium-webdriver/chrome");
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
96
|
+
try {
|
|
97
|
+
// @ts-expect-error Is optional dependency, if not found, an error is fine.
|
|
98
|
+
await import('chromedriver');
|
|
99
|
+
} catch (err) {
|
|
100
|
+
console.error(`Error importing chromedriver, make sure it is installed as a dependency: ${err}`);
|
|
101
|
+
throw err;
|
|
102
|
+
}
|
|
103
|
+
const chrome = await import('selenium-webdriver/chrome.js');
|
|
107
104
|
|
|
108
105
|
const options: Options = (new chrome.Options().addArguments("--headless=new")) as Options;
|
|
109
106
|
options.setAcceptInsecureCerts(acceptUntrustedCertificates);
|
|
@@ -130,13 +127,8 @@ async function setUpWebDriverChrome(acceptUntrustedCertificates: boolean, width?
|
|
|
130
127
|
*/
|
|
131
128
|
async function setUpWebDriverFirefox(acceptUntrustedCertificates: boolean, width?: number, height?: number) {
|
|
132
129
|
debug("Dynamic import of geckodriver and selenium-webdriver/firefox");
|
|
133
|
-
// Note: we need to import the selenium firefox driver dynamically, because it is not needed in non-remote mode and
|
|
134
|
-
// it is a heavy dependency with many transitive dependencies
|
|
135
|
-
// If it is not found, an error is fine.
|
|
136
|
-
//@ts-ignore
|
|
137
130
|
await import('geckodriver'); // installed geckodriver will cause remote configuration to fail in docker...
|
|
138
|
-
|
|
139
|
-
const firefox = await import('selenium-webdriver/firefox');
|
|
131
|
+
const firefox = await import('selenium-webdriver/firefox.js');
|
|
140
132
|
|
|
141
133
|
const options = new firefox.Options();
|
|
142
134
|
options.addArguments("-headless");
|
package/src/seUtils.ts
CHANGED
|
@@ -10,20 +10,46 @@ import * as fsPromises from "fs/promises";
|
|
|
10
10
|
import path from "path";
|
|
11
11
|
import { By, locateWith, Locator, WebDriver, WebElement } from 'selenium-webdriver';
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Waits for SEFI_PAGE_UPDATE_TIME (or 500 by default) ms to let the page update after an action, e.g. after a click or after setting the window size.
|
|
15
|
+
* This is needed, because the page may need some time to update after an action,
|
|
16
|
+
* e.g. to re-render the page after a click or to update the bounding client rects after setting the window size.
|
|
17
|
+
*/
|
|
18
|
+
export async function letThePageUpdate() {
|
|
19
|
+
const waitFor = parseInt(process.env.SEFI_PAGE_UPDATE_TIME || "500");
|
|
20
|
+
return await new Promise<void>((resolve, _reject) => setTimeout(resolve, waitFor));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
13
24
|
export function getRemoteAddressAndPort(): { address: string; port: number; } {
|
|
14
25
|
const address = process.env.SEFI_SELENIUM_REMOTE_URL || "http://localhost:4444/wd/hub";
|
|
15
26
|
const port = Number(address.match(/:(\d+)\/?/)?.[1] || 80);
|
|
16
27
|
return { address, port };
|
|
17
28
|
}
|
|
18
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Options for function {@link cmpStrings}
|
|
32
|
+
*/
|
|
33
|
+
type CmpStringsOptions = {
|
|
34
|
+
/**
|
|
35
|
+
* Compares strings ignoring case. Ignored if the second parameter is a regex, since regexes can already be defined to ignore case.
|
|
36
|
+
*/
|
|
37
|
+
ignoreCase?: boolean
|
|
38
|
+
/**
|
|
39
|
+
* If true, the string is split at the first "$" and only the part before is compared. This is useful for comparing React component names,
|
|
40
|
+
* which often have a suffix like "$1", "$2" etc. to distinguish different instances of the same component.
|
|
41
|
+
*/
|
|
42
|
+
stripAfterDollar?: boolean
|
|
43
|
+
};
|
|
44
|
+
|
|
19
45
|
/**
|
|
20
46
|
* Compares a given string with either a string or a regex.
|
|
21
47
|
* @param str string to compare
|
|
22
48
|
* @param stringOrRegEx string or regex to compare with
|
|
23
|
-
* @param options
|
|
49
|
+
* @param options see {@link CmpStringsOptions}
|
|
24
50
|
* @returns
|
|
25
51
|
*/
|
|
26
|
-
export function cmpStrings(str: string | undefined, stringOrRegEx: undefined | string | RegExp, options?:
|
|
52
|
+
export function cmpStrings(str: string | undefined, stringOrRegEx: undefined | string | RegExp, options?: CmpStringsOptions): boolean {
|
|
27
53
|
if (stringOrRegEx === null || stringOrRegEx === undefined) {
|
|
28
54
|
return str === undefined || str === null;
|
|
29
55
|
}
|
|
@@ -31,6 +57,10 @@ export function cmpStrings(str: string | undefined, stringOrRegEx: undefined | s
|
|
|
31
57
|
return false;
|
|
32
58
|
}
|
|
33
59
|
|
|
60
|
+
if (options?.stripAfterDollar) {
|
|
61
|
+
str = str.split("$")[0];
|
|
62
|
+
}
|
|
63
|
+
|
|
34
64
|
if (stringOrRegEx instanceof RegExp) {
|
|
35
65
|
return stringOrRegEx.test(str!);
|
|
36
66
|
}
|
|
@@ -821,7 +851,7 @@ export async function getInputElementByLabel(driver: WebDriver,
|
|
|
821
851
|
for (const webElement of inputFields) {
|
|
822
852
|
const type = (await webElement.getAttribute("type"))?.toLowerCase();
|
|
823
853
|
const tag = (await webElement.getTagName()).toLowerCase();
|
|
824
|
-
if (typeHints.includes(type) || typeHints.includes(tag)) {
|
|
854
|
+
if ((type && typeHints.includes(type)) || typeHints.includes(tag)) {
|
|
825
855
|
if (pos >= positionHint) {
|
|
826
856
|
return [webElement, undefined, "type"];
|
|
827
857
|
}
|