automation_model 1.0.13 → 1.0.15
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/bin/init_browser.js +2 -2
- package/bin/stable_browser.js +9 -8
- package/package.json +1 -1
package/bin/init_browser.js
CHANGED
|
@@ -7,7 +7,7 @@ import { StableBrowser } from "./stable_browser.js";
|
|
|
7
7
|
let environment = null;
|
|
8
8
|
|
|
9
9
|
// init browser create context and page, if context and page are not null
|
|
10
|
-
const getContext = async function (environment = null, headless = false) {
|
|
10
|
+
const getContext = async function (environment = null, headless = false, logger = null) {
|
|
11
11
|
if (environment === null) {
|
|
12
12
|
environment = initEnvoronment();
|
|
13
13
|
}
|
|
@@ -17,7 +17,7 @@ const getContext = async function (environment = null, headless = false) {
|
|
|
17
17
|
context.playContext = browser.context;
|
|
18
18
|
context.page = browser.page;
|
|
19
19
|
context.environment = environment;
|
|
20
|
-
context.stable = new StableBrowser(context.browser, context.page);
|
|
20
|
+
context.stable = new StableBrowser(context.browser, context.page, logger);
|
|
21
21
|
await _initCookies(context);
|
|
22
22
|
return context;
|
|
23
23
|
};
|
package/bin/stable_browser.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { expect } from "@playwright/test";
|
|
2
2
|
class StableBrowser {
|
|
3
|
-
constructor(browser, page, logger
|
|
3
|
+
constructor(browser, page, logger) {
|
|
4
4
|
this.browser = browser;
|
|
5
5
|
this.page = page;
|
|
6
6
|
this.logger = logger;
|
|
7
|
+
if (!this.logger) {
|
|
8
|
+
this.logger = console;
|
|
9
|
+
}
|
|
7
10
|
}
|
|
8
11
|
|
|
9
12
|
async goto(url) {
|
|
@@ -14,7 +17,7 @@ class StableBrowser {
|
|
|
14
17
|
async _checkUnique(locator) {
|
|
15
18
|
let count = await locator.count();
|
|
16
19
|
if (count > 1) {
|
|
17
|
-
logger.error("Found more than one element for locator"
|
|
20
|
+
this.logger.error("Found more than one element for locator" + JSON.stringify(locator.toString()));
|
|
18
21
|
for (let i = 0; i < count; i++) {
|
|
19
22
|
let loc = locator.nth(i);
|
|
20
23
|
if ((await loc.isVisible()) && (await loc.isEnabled())) {
|
|
@@ -44,17 +47,15 @@ class StableBrowser {
|
|
|
44
47
|
if (selector.text) {
|
|
45
48
|
return await this._checkUnique(scope.getByText(selector.text));
|
|
46
49
|
}
|
|
50
|
+
} else if (typeof selector === "string" && selector.startsWith("TEXT=")) {
|
|
51
|
+
return await this.page.getByText(selector.substring("TEXT=".length));
|
|
52
|
+
} else {
|
|
53
|
+
return await this.page.locator(selector);
|
|
47
54
|
}
|
|
48
55
|
throw new Error(`Unknown locator type ${type}`);
|
|
49
56
|
} catch (e) {
|
|
50
57
|
console.log("invalid locator object, will try to parse as text");
|
|
51
58
|
}
|
|
52
|
-
|
|
53
|
-
if (selector.startsWith("TEXT=")) {
|
|
54
|
-
return await this.page.getByText(selector.substring("TEXT=".length));
|
|
55
|
-
} else {
|
|
56
|
-
return await this.page.locator(selector);
|
|
57
|
-
}
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
async click(selector) {
|