@mechris3/glassbox 0.1.6 → 0.1.7
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
CHANGED
|
@@ -106,20 +106,34 @@ Extend `BasePage` — no constructor needed. The following methods are available
|
|
|
106
106
|
|
|
107
107
|
| Method | Description |
|
|
108
108
|
|--------|-------------|
|
|
109
|
+
| **Interaction** | |
|
|
109
110
|
| `click(selector)` | Click an element |
|
|
110
111
|
| `fill(selector, value)` | Clear and set an input's value |
|
|
111
|
-
| `type(selector, value, {delay?})` | Type character by character
|
|
112
|
-
| `
|
|
113
|
-
| `
|
|
114
|
-
| `
|
|
112
|
+
| `type(selector, value, {delay?})` | Type character by character |
|
|
113
|
+
| `uploadFile(selector, filePath)` | Upload a file to a file input |
|
|
114
|
+
| `selectByIndex(selector, index)` | Select dropdown option by index |
|
|
115
|
+
| `selectByValue(selector, value)` | Select dropdown option by value |
|
|
116
|
+
| `selectByText(selector, text)` | Select dropdown option by visible text |
|
|
117
|
+
| **Queries** | |
|
|
118
|
+
| `getText(selector)` | Get element's text content |
|
|
119
|
+
| `getInputValue(selector)` | Get input's current value |
|
|
120
|
+
| `getAttribute(selector, attr)` | Get an attribute value |
|
|
115
121
|
| `countElements(selector)` | Count matching elements |
|
|
116
122
|
| `isVisible(selector)` | Check if element is visible |
|
|
117
123
|
| `isDisabled(selector)` | Check if element is disabled |
|
|
118
|
-
|
|
|
124
|
+
| **Waiting** | |
|
|
125
|
+
| `waitForSelector(selector, {timeout?})` | Wait for element to appear |
|
|
119
126
|
| `waitForHidden(selector, {timeout?})` | Wait for element to disappear |
|
|
120
|
-
| `
|
|
127
|
+
| `waitForText(selector, expected, {timeout?})` | Wait for text content to match |
|
|
128
|
+
| `waitForTimeout(ms)` | Fixed delay (use sparingly) |
|
|
129
|
+
| **Navigation** | |
|
|
130
|
+
| `goto(url)` | Navigate (relative URLs resolve against target) |
|
|
131
|
+
| `clickAndWaitForNavigation(selector)` | Click and wait for page load |
|
|
132
|
+
| `getCurrentUrl()` | Get the current page URL |
|
|
133
|
+
| **Advanced** | |
|
|
121
134
|
| `evaluate(script)` | Execute arbitrary JS in the page |
|
|
122
135
|
| `clearSession(origin?)` | Clear cookies and storage |
|
|
136
|
+
| `readClipboard()` | Read text from clipboard |
|
|
123
137
|
|
|
124
138
|
Example:
|
|
125
139
|
|
|
@@ -6,23 +6,59 @@ import type { BrowserAdapter } from '../adapters/browser-adapter.interface.js';
|
|
|
6
6
|
export declare class BasePage {
|
|
7
7
|
protected adapter: BrowserAdapter;
|
|
8
8
|
constructor(adapter: BrowserAdapter);
|
|
9
|
+
/** Click an element. */
|
|
9
10
|
protected click(selector: string): Promise<void>;
|
|
11
|
+
/** Clear and set an input's value (triggers input + change events). */
|
|
10
12
|
protected fill(selector: string, value: string): Promise<void>;
|
|
13
|
+
/** Type character by character with optional delay (for autocomplete, etc.). */
|
|
11
14
|
protected type(selector: string, value: string, options?: {
|
|
12
15
|
delay?: number;
|
|
13
16
|
}): Promise<void>;
|
|
17
|
+
/** Upload a file to a file input element. */
|
|
18
|
+
protected uploadFile(selector: string, filePath: string): Promise<void>;
|
|
19
|
+
/** Select an option by its index (0-based). */
|
|
20
|
+
protected selectByIndex(selector: string, index: number): Promise<void>;
|
|
21
|
+
/** Select an option by its value attribute. */
|
|
22
|
+
protected selectByValue(selector: string, value: string): Promise<void>;
|
|
23
|
+
/** Select an option by its visible text. */
|
|
24
|
+
protected selectByText(selector: string, text: string, exact?: boolean): Promise<void>;
|
|
25
|
+
/** Get an element's text content. */
|
|
14
26
|
protected getText(selector: string): Promise<string>;
|
|
27
|
+
/** Get an input element's current value. */
|
|
15
28
|
protected getInputValue(selector: string): Promise<string>;
|
|
29
|
+
/** Get an element's attribute value (null if not present). */
|
|
16
30
|
protected getAttribute(selector: string, attribute: string): Promise<string | null>;
|
|
31
|
+
/** Count elements matching the selector. */
|
|
32
|
+
protected countElements(selector: string): Promise<number>;
|
|
33
|
+
/** Check if an element is visible (exists and has layout). */
|
|
34
|
+
protected isVisible(selector: string): Promise<boolean>;
|
|
35
|
+
/** Check if an element is disabled. */
|
|
36
|
+
protected isDisabled(selector: string): Promise<boolean>;
|
|
37
|
+
/** Wait for an element to appear in the DOM (default 5s timeout). */
|
|
17
38
|
protected waitForSelector(selector: string, options?: {
|
|
18
39
|
timeout?: number;
|
|
19
40
|
}): Promise<void>;
|
|
41
|
+
/** Wait for an element to disappear from the DOM (default 5s timeout). */
|
|
20
42
|
protected waitForHidden(selector: string, options?: {
|
|
21
43
|
timeout?: number;
|
|
22
44
|
}): Promise<void>;
|
|
23
|
-
|
|
45
|
+
/** Wait for an element's text content to equal the expected value. */
|
|
46
|
+
protected waitForText(selector: string, expected: string, options?: {
|
|
47
|
+
timeout?: number;
|
|
48
|
+
}): Promise<void>;
|
|
49
|
+
/** Wait for a fixed duration (use sparingly — prefer event-driven waits). */
|
|
50
|
+
protected waitForTimeout(ms: number): Promise<void>;
|
|
51
|
+
/** Navigate to a URL (relative paths resolve against the target URL). */
|
|
24
52
|
protected goto(url: string): Promise<void>;
|
|
53
|
+
/** Click an element and wait for the page to navigate. */
|
|
54
|
+
protected clickAndWaitForNavigation(selector: string): Promise<void>;
|
|
55
|
+
/** Get the current page URL. */
|
|
56
|
+
protected getCurrentUrl(): Promise<string>;
|
|
57
|
+
/** Execute arbitrary JavaScript in the page context. */
|
|
25
58
|
protected evaluate<T = unknown>(script: string | (() => T)): Promise<T>;
|
|
59
|
+
/** Clear cookies and storage (optionally for a specific origin). */
|
|
26
60
|
protected clearSession(origin?: string): Promise<void>;
|
|
61
|
+
/** Read text from the clipboard. */
|
|
62
|
+
protected readClipboard(): Promise<string>;
|
|
27
63
|
}
|
|
28
64
|
//# sourceMappingURL=base.page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.page.d.ts","sourceRoot":"","sources":["../../../src/page-objects/base.page.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"base.page.d.ts","sourceRoot":"","sources":["../../../src/page-objects/base.page.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,47 +5,110 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.BasePage = void 0;
|
|
8
|
+
const wait_utils_js_1 = require("../utils/wait-utils.js");
|
|
8
9
|
class BasePage {
|
|
9
10
|
adapter;
|
|
10
11
|
constructor(adapter) {
|
|
11
12
|
this.adapter = adapter;
|
|
12
13
|
}
|
|
14
|
+
// --- Interaction ---
|
|
15
|
+
/** Click an element. */
|
|
13
16
|
async click(selector) {
|
|
14
17
|
return this.adapter.click(selector);
|
|
15
18
|
}
|
|
19
|
+
/** Clear and set an input's value (triggers input + change events). */
|
|
16
20
|
async fill(selector, value) {
|
|
17
21
|
return this.adapter.fill(selector, value);
|
|
18
22
|
}
|
|
23
|
+
/** Type character by character with optional delay (for autocomplete, etc.). */
|
|
19
24
|
async type(selector, value, options) {
|
|
20
25
|
return this.adapter.type(selector, value, options);
|
|
21
26
|
}
|
|
27
|
+
/** Upload a file to a file input element. */
|
|
28
|
+
async uploadFile(selector, filePath) {
|
|
29
|
+
return this.adapter.uploadFile(selector, filePath);
|
|
30
|
+
}
|
|
31
|
+
// --- Dropdowns ---
|
|
32
|
+
/** Select an option by its index (0-based). */
|
|
33
|
+
async selectByIndex(selector, index) {
|
|
34
|
+
return this.adapter.selectByIndex(selector, index);
|
|
35
|
+
}
|
|
36
|
+
/** Select an option by its value attribute. */
|
|
37
|
+
async selectByValue(selector, value) {
|
|
38
|
+
return this.adapter.selectByValue(selector, value);
|
|
39
|
+
}
|
|
40
|
+
/** Select an option by its visible text. */
|
|
41
|
+
async selectByText(selector, text, exact = true) {
|
|
42
|
+
return this.adapter.selectByText(selector, text, exact);
|
|
43
|
+
}
|
|
44
|
+
// --- Queries ---
|
|
45
|
+
/** Get an element's text content. */
|
|
22
46
|
async getText(selector) {
|
|
23
47
|
return this.adapter.getText(selector);
|
|
24
48
|
}
|
|
49
|
+
/** Get an input element's current value. */
|
|
25
50
|
async getInputValue(selector) {
|
|
26
51
|
return this.adapter.getInputValue(selector);
|
|
27
52
|
}
|
|
53
|
+
/** Get an element's attribute value (null if not present). */
|
|
28
54
|
async getAttribute(selector, attribute) {
|
|
29
55
|
return this.adapter.getAttribute(selector, attribute);
|
|
30
56
|
}
|
|
57
|
+
/** Count elements matching the selector. */
|
|
58
|
+
async countElements(selector) {
|
|
59
|
+
return this.adapter.countElements(selector);
|
|
60
|
+
}
|
|
61
|
+
/** Check if an element is visible (exists and has layout). */
|
|
62
|
+
async isVisible(selector) {
|
|
63
|
+
return this.adapter.isVisible(selector);
|
|
64
|
+
}
|
|
65
|
+
/** Check if an element is disabled. */
|
|
66
|
+
async isDisabled(selector) {
|
|
67
|
+
return this.adapter.isDisabled(selector);
|
|
68
|
+
}
|
|
69
|
+
// --- Waiting ---
|
|
70
|
+
/** Wait for an element to appear in the DOM (default 5s timeout). */
|
|
31
71
|
async waitForSelector(selector, options) {
|
|
32
72
|
return this.adapter.waitForSelector(selector, options);
|
|
33
73
|
}
|
|
74
|
+
/** Wait for an element to disappear from the DOM (default 5s timeout). */
|
|
34
75
|
async waitForHidden(selector, options) {
|
|
35
76
|
return this.adapter.waitForHidden(selector, options);
|
|
36
77
|
}
|
|
37
|
-
|
|
38
|
-
|
|
78
|
+
/** Wait for an element's text content to equal the expected value. */
|
|
79
|
+
async waitForText(selector, expected, options) {
|
|
80
|
+
await (0, wait_utils_js_1.waitForCondition)(() => this.adapter.getText(selector), (text) => text === expected, { timeout: options?.timeout ?? 5000, errorMessage: `Expected text "${expected}" in ${selector}` });
|
|
81
|
+
}
|
|
82
|
+
/** Wait for a fixed duration (use sparingly — prefer event-driven waits). */
|
|
83
|
+
async waitForTimeout(ms) {
|
|
84
|
+
return this.adapter.waitForTimeout(ms);
|
|
39
85
|
}
|
|
86
|
+
// --- Navigation ---
|
|
87
|
+
/** Navigate to a URL (relative paths resolve against the target URL). */
|
|
40
88
|
async goto(url) {
|
|
41
89
|
return this.adapter.goto(url);
|
|
42
90
|
}
|
|
91
|
+
/** Click an element and wait for the page to navigate. */
|
|
92
|
+
async clickAndWaitForNavigation(selector) {
|
|
93
|
+
return this.adapter.clickAndWaitForNavigation(selector);
|
|
94
|
+
}
|
|
95
|
+
/** Get the current page URL. */
|
|
96
|
+
async getCurrentUrl() {
|
|
97
|
+
return this.adapter.getCurrentUrl();
|
|
98
|
+
}
|
|
99
|
+
// --- Advanced ---
|
|
100
|
+
/** Execute arbitrary JavaScript in the page context. */
|
|
43
101
|
async evaluate(script) {
|
|
44
102
|
return this.adapter.evaluate(script);
|
|
45
103
|
}
|
|
104
|
+
/** Clear cookies and storage (optionally for a specific origin). */
|
|
46
105
|
async clearSession(origin) {
|
|
47
106
|
return this.adapter.clearSession(origin);
|
|
48
107
|
}
|
|
108
|
+
/** Read text from the clipboard. */
|
|
109
|
+
async readClipboard() {
|
|
110
|
+
return this.adapter.readClipboard();
|
|
111
|
+
}
|
|
49
112
|
}
|
|
50
113
|
exports.BasePage = BasePage;
|
|
51
114
|
//# sourceMappingURL=base.page.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.page.js","sourceRoot":"","sources":["../../../src/page-objects/base.page.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"base.page.js","sourceRoot":"","sources":["../../../src/page-objects/base.page.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED