pw-automation-framework 2.0.1
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 +93 -0
- package/bin/lexxit-automation-framework.js +427 -0
- package/dist/app.d.ts +2 -0
- package/dist/app.js +26 -0
- package/dist/app.js.map +1 -0
- package/dist/controllers/controller.d.ts +57 -0
- package/dist/controllers/controller.js +263 -0
- package/dist/controllers/controller.js.map +1 -0
- package/dist/core/BrowserManager.d.ts +46 -0
- package/dist/core/BrowserManager.js +377 -0
- package/dist/core/BrowserManager.js.map +1 -0
- package/dist/core/PlaywrightEngine.d.ts +16 -0
- package/dist/core/PlaywrightEngine.js +246 -0
- package/dist/core/PlaywrightEngine.js.map +1 -0
- package/dist/core/ScreenshotManager.d.ts +10 -0
- package/dist/core/ScreenshotManager.js +28 -0
- package/dist/core/ScreenshotManager.js.map +1 -0
- package/dist/core/TestData.d.ts +12 -0
- package/dist/core/TestData.js +29 -0
- package/dist/core/TestData.js.map +1 -0
- package/dist/core/TestExecutor.d.ts +16 -0
- package/dist/core/TestExecutor.js +355 -0
- package/dist/core/TestExecutor.js.map +1 -0
- package/dist/core/handlers/AllHandlers.d.ts +116 -0
- package/dist/core/handlers/AllHandlers.js +648 -0
- package/dist/core/handlers/AllHandlers.js.map +1 -0
- package/dist/core/handlers/BaseHandler.d.ts +16 -0
- package/dist/core/handlers/BaseHandler.js +27 -0
- package/dist/core/handlers/BaseHandler.js.map +1 -0
- package/dist/core/handlers/ClickHandler.d.ts +34 -0
- package/dist/core/handlers/ClickHandler.js +359 -0
- package/dist/core/handlers/ClickHandler.js.map +1 -0
- package/dist/core/handlers/CustomCodeHandler.d.ts +35 -0
- package/dist/core/handlers/CustomCodeHandler.js +102 -0
- package/dist/core/handlers/CustomCodeHandler.js.map +1 -0
- package/dist/core/handlers/DropdownHandler.d.ts +43 -0
- package/dist/core/handlers/DropdownHandler.js +304 -0
- package/dist/core/handlers/DropdownHandler.js.map +1 -0
- package/dist/core/handlers/InputHandler.d.ts +24 -0
- package/dist/core/handlers/InputHandler.js +197 -0
- package/dist/core/handlers/InputHandler.js.map +1 -0
- package/dist/core/registry/ActionRegistry.d.ts +8 -0
- package/dist/core/registry/ActionRegistry.js +35 -0
- package/dist/core/registry/ActionRegistry.js.map +1 -0
- package/dist/installer/frameworkLauncher.d.ts +31 -0
- package/dist/installer/frameworkLauncher.js +198 -0
- package/dist/installer/frameworkLauncher.js.map +1 -0
- package/dist/queue/ExecutionQueue.d.ts +52 -0
- package/dist/queue/ExecutionQueue.js +175 -0
- package/dist/queue/ExecutionQueue.js.map +1 -0
- package/dist/routes/api.routes.d.ts +2 -0
- package/dist/routes/api.routes.js +16 -0
- package/dist/routes/api.routes.js.map +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.js +30 -0
- package/dist/server.js.map +1 -0
- package/dist/types/types.d.ts +135 -0
- package/dist/types/types.js +4 -0
- package/dist/types/types.js.map +1 -0
- package/dist/utils/elementHighlight.d.ts +35 -0
- package/dist/utils/elementHighlight.js +136 -0
- package/dist/utils/elementHighlight.js.map +1 -0
- package/dist/utils/locatorHelper.d.ts +7 -0
- package/dist/utils/locatorHelper.js +53 -0
- package/dist/utils/locatorHelper.js.map +1 -0
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.js +35 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/response.d.ts +4 -0
- package/dist/utils/response.js +25 -0
- package/dist/utils/response.js.map +1 -0
- package/dist/utils/responseFormatter.d.ts +78 -0
- package/dist/utils/responseFormatter.js +123 -0
- package/dist/utils/responseFormatter.js.map +1 -0
- package/dist/utils/sseManager.d.ts +32 -0
- package/dist/utils/sseManager.js +122 -0
- package/dist/utils/sseManager.js.map +1 -0
- package/lexxit-automation-framework-2.0.0.tgz +0 -0
- package/npmignore +5 -0
- package/package.json +36 -0
- package/scripts/postinstall.js +52 -0
- package/src/app.ts +27 -0
- package/src/controllers/controller.ts +282 -0
- package/src/core/BrowserManager.ts +398 -0
- package/src/core/PlaywrightEngine.ts +371 -0
- package/src/core/ScreenshotManager.ts +25 -0
- package/src/core/TestData.ts +25 -0
- package/src/core/TestExecutor.ts +436 -0
- package/src/core/handlers/AllHandlers.ts +626 -0
- package/src/core/handlers/BaseHandler.ts +41 -0
- package/src/core/handlers/ClickHandler.ts +482 -0
- package/src/core/handlers/CustomCodeHandler.ts +123 -0
- package/src/core/handlers/DropdownHandler.ts +438 -0
- package/src/core/handlers/InputHandler.ts +192 -0
- package/src/core/registry/ActionRegistry.ts +31 -0
- package/src/installer/frameworkLauncher.ts +242 -0
- package/src/installer/install.sh +107 -0
- package/src/public/dashboard.html +540 -0
- package/src/public/queue-monitor.html +190 -0
- package/src/queue/ExecutionQueue.ts +200 -0
- package/src/routes/api.routes.ts +16 -0
- package/src/server.ts +29 -0
- package/src/types/types.ts +169 -0
- package/src/utils/elementHighlight.ts +174 -0
- package/src/utils/locatorHelper.ts +49 -0
- package/src/utils/logger.ts +40 -0
- package/src/utils/response.ts +27 -0
- package/src/utils/responseFormatter.ts +167 -0
- package/src/utils/sseManager.ts +127 -0
- package/tsconfig.json +18 -0
- package/videos/fb1b94b6-6639-4c9a-82bb-63572606f403/page@5bd5c6c8b62baa700e9810cdd64f5c49.webm +0 -0
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiController = void 0;
|
|
4
|
+
const ExecutionQueue_1 = require("../queue/ExecutionQueue");
|
|
5
|
+
const sseManager_1 = require("../utils/sseManager");
|
|
6
|
+
const responseFormatter_1 = require("../utils/responseFormatter");
|
|
7
|
+
const logger_1 = require("../utils/logger");
|
|
8
|
+
const log = logger_1.Logger.create("ApiController");
|
|
9
|
+
class ApiController {
|
|
10
|
+
/**
|
|
11
|
+
* POST /api/run-test
|
|
12
|
+
* ------------------
|
|
13
|
+
* Enqueues execution, returns 202 + executionId immediately.
|
|
14
|
+
* The caller opens the dashboard and subscribes to SSE for live updates.
|
|
15
|
+
* Call GET /api/result/:executionId when done to get the full formatted result.
|
|
16
|
+
*/
|
|
17
|
+
static async runTest(req, res) {
|
|
18
|
+
const payload = req.body;
|
|
19
|
+
if (!payload?.scripts?.length) {
|
|
20
|
+
res.status(400).json({ error: "'scripts' array is required." });
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Validate that steps have step_script
|
|
24
|
+
const missingSteps = [];
|
|
25
|
+
for (const script of payload.scripts) {
|
|
26
|
+
for (const step of (script.steps || [])) {
|
|
27
|
+
if (!step.step_script || step.step_script.trim() === "") {
|
|
28
|
+
missingSteps.push(step.step_name || "unnamed step");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (missingSteps.length > 0) {
|
|
33
|
+
res.status(400).json({
|
|
34
|
+
error: "Steps are missing step_script field.",
|
|
35
|
+
detail: `Steps without step_script: ${missingSteps.slice(0, 5).join(", ")}`,
|
|
36
|
+
fix: "Call prepareSteps(uid) in your main app to resolve obj_uid → step_script before sending to the framework.",
|
|
37
|
+
});
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const executionId = ExecutionQueue_1.executionQueue.enqueue(payload);
|
|
41
|
+
const dashboardURL = `http://localhost:${process.env.PORT || 3000}/dashboard/${executionId}`;
|
|
42
|
+
const resultURL = `http://localhost:${process.env.PORT || 3000}/api/result/${executionId}`;
|
|
43
|
+
const streamURL = `http://localhost:${process.env.PORT || 3000}/api/stream/${executionId}`;
|
|
44
|
+
// const videoURL = `http://localhost:${process.env.PORT || 3000}/api/video/${executionId}`;
|
|
45
|
+
log.info(`Enqueued: ${executionId} | scripts=${payload.scripts.length}`);
|
|
46
|
+
res.status(202).json({
|
|
47
|
+
executionId,
|
|
48
|
+
dashboardURL,
|
|
49
|
+
resultURL, // Poll this for final result
|
|
50
|
+
streamURL, // Subscribe to this for live events
|
|
51
|
+
// videoURL,
|
|
52
|
+
status: "queued",
|
|
53
|
+
message: "Execution queued. Dashboard opening. Subscribe to streamURL for live updates, or poll resultURL for final result.",
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* GET /api/stream/:executionId
|
|
58
|
+
* ----------------------------
|
|
59
|
+
* SSE endpoint — dashboard subscribes here for live step events.
|
|
60
|
+
* Replays all past events immediately for late-connecting clients.
|
|
61
|
+
*/
|
|
62
|
+
static stream(req, res) {
|
|
63
|
+
const { executionId } = req.params;
|
|
64
|
+
sseManager_1.sseManager.addClient(executionId, res);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* GET /api/result/:executionId
|
|
68
|
+
* ----------------------------
|
|
69
|
+
* Returns the FULL formatted result once execution is complete.
|
|
70
|
+
* Returns 202 if still running (poll until 200).
|
|
71
|
+
*
|
|
72
|
+
* Response matches the standard format:
|
|
73
|
+
* {
|
|
74
|
+
* "status": "pass|fail",
|
|
75
|
+
* "results": [{ "test_script_uid": "...", "status": "...", "results": [...] }]
|
|
76
|
+
* }
|
|
77
|
+
*/
|
|
78
|
+
static getResult(req, res) {
|
|
79
|
+
const { executionId } = req.params;
|
|
80
|
+
const job = ExecutionQueue_1.executionQueue.getJob(executionId);
|
|
81
|
+
if (!job) {
|
|
82
|
+
res.status(404).json({ error: `Execution ${executionId} not found` });
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (job.status === "queued" || job.status === "running") {
|
|
86
|
+
res.status(202).json({
|
|
87
|
+
executionId,
|
|
88
|
+
status: job.status,
|
|
89
|
+
message: "Execution still in progress",
|
|
90
|
+
progress: job.progress,
|
|
91
|
+
});
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (job.status === "cancelled") {
|
|
95
|
+
res.status(200).json({
|
|
96
|
+
executionId,
|
|
97
|
+
status: "cancelled",
|
|
98
|
+
message: "Execution was cancelled",
|
|
99
|
+
});
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (!job.result) {
|
|
103
|
+
res.status(500).json({
|
|
104
|
+
executionId,
|
|
105
|
+
status: "failed",
|
|
106
|
+
error: job.error || "Execution failed with no result",
|
|
107
|
+
});
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
// Return formatted result matching the standard API format
|
|
111
|
+
res.status(200).json((0, responseFormatter_1.formatExecutionResult)(job.result));
|
|
112
|
+
// console.log(formatExecutionResult(job.result));
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* GET /api/status/:executionId
|
|
116
|
+
* ----------------------------
|
|
117
|
+
* Lightweight status check (progress only, no full results).
|
|
118
|
+
*/
|
|
119
|
+
static getStatus(req, res) {
|
|
120
|
+
const { executionId } = req.params;
|
|
121
|
+
const job = ExecutionQueue_1.executionQueue.getJob(executionId);
|
|
122
|
+
if (!job) {
|
|
123
|
+
res.status(404).json({ error: `Execution ${executionId} not found` });
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
res.json({
|
|
127
|
+
executionId: job.executionId,
|
|
128
|
+
status: job.status,
|
|
129
|
+
queuedAt: job.queuedAt,
|
|
130
|
+
startedAt: job.startedAt,
|
|
131
|
+
completedAt: job.completedAt,
|
|
132
|
+
cancelledAt: job.cancelledAt,
|
|
133
|
+
progress: job.progress,
|
|
134
|
+
cancelRequested: job.cancelRequested,
|
|
135
|
+
error: job.error,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* DELETE /api/cancel/:executionId
|
|
140
|
+
*/
|
|
141
|
+
static cancelExecution(req, res) {
|
|
142
|
+
const { executionId } = req.params;
|
|
143
|
+
const result = ExecutionQueue_1.executionQueue.cancel(executionId);
|
|
144
|
+
res.status(result.success ? 200 : 400).json({ executionId, ...result });
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* DELETE /api/cancel-all
|
|
148
|
+
*/
|
|
149
|
+
static cancelAll(_req, res) {
|
|
150
|
+
res.json(ExecutionQueue_1.executionQueue.cancelAll());
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* GET /api/queue
|
|
154
|
+
*/
|
|
155
|
+
static getQueue(_req, res) {
|
|
156
|
+
res.json(ExecutionQueue_1.executionQueue.getQueueStats());
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* GET /api/health
|
|
160
|
+
*/
|
|
161
|
+
static health(_req, res) {
|
|
162
|
+
res.json({
|
|
163
|
+
status: "ok",
|
|
164
|
+
version: "2.0.0",
|
|
165
|
+
ts: new Date().toISOString(),
|
|
166
|
+
queue: ExecutionQueue_1.executionQueue.getQueueStats(),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* GET /api/actions
|
|
171
|
+
*/
|
|
172
|
+
static listActions(_req, res) {
|
|
173
|
+
res.json({ total: ALL_ACTIONS.length, actions: ALL_ACTIONS });
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
exports.ApiController = ApiController;
|
|
177
|
+
const ALL_ACTIONS = [
|
|
178
|
+
// Browser
|
|
179
|
+
{ name: "openBrowser", category: "browser", example: "tSetup.openBrowser('chrome')" },
|
|
180
|
+
{ name: "closeBrowser", category: "browser", example: "tSetup.closeBrowser()" },
|
|
181
|
+
{ name: "navigateToURL", category: "browser", example: "tSetup.navigateToURL('https://example.com')" },
|
|
182
|
+
{ name: "navigateBack", category: "browser", example: "tSetup.navigateBack()" },
|
|
183
|
+
{ name: "navigateForward", category: "browser", example: "tSetup.navigateForward()" },
|
|
184
|
+
{ name: "refreshPage", category: "browser", example: "tSetup.refreshPage()" },
|
|
185
|
+
{ name: "maximizeWindow", category: "browser", example: "tSetup.maximizeWindow()" },
|
|
186
|
+
{ name: "setWindowSize", category: "browser", example: "tSetup.setWindowSize('1920', '1080')" },
|
|
187
|
+
{ name: "switchToTab", category: "browser", example: "tSetup.switchToTab('1')" },
|
|
188
|
+
{ name: "openNewTab", category: "browser", example: "tSetup.openNewTab('https://example.com')" },
|
|
189
|
+
{ name: "closeCurrentTab", category: "browser", example: "tSetup.closeCurrentTab()" },
|
|
190
|
+
{ name: "acceptAlert", category: "browser", example: "tSetup.acceptAlert()" },
|
|
191
|
+
{ name: "dismissAlert", category: "browser", example: "tSetup.dismissAlert()" },
|
|
192
|
+
{ name: "getAlertText", category: "browser", example: "tSetup.getAlertText('storeKey')" },
|
|
193
|
+
{ name: "switchToFrame", category: "browser", example: "tSetup.switchToFrame('frameName')" },
|
|
194
|
+
{ name: "executeScript", category: "browser", example: "tSetup.executeScript('return document.title')" },
|
|
195
|
+
{ name: "scrollToBottom", category: "browser", example: "tSetup.scrollToBottom()" },
|
|
196
|
+
{ name: "scrollToTop", category: "browser", example: "tSetup.scrollToTop()" },
|
|
197
|
+
{ name: "deleteAllCookies", category: "browser", example: "tSetup.deleteAllCookies()" },
|
|
198
|
+
{ name: "clearLocalStorage", category: "browser", example: "tSetup.clearLocalStorage()" },
|
|
199
|
+
{ name: "clearSessionStorage", category: "browser", example: "tSetup.clearSessionStorage()" },
|
|
200
|
+
{ name: "takeScreenshot", category: "browser", example: "tSetup.takeScreenshot()" },
|
|
201
|
+
{ name: "getTitle", category: "browser", example: "tSetup.getTitle('storeKey')" },
|
|
202
|
+
{ name: "verifyTitle", category: "browser", example: "tSetup.verifyTitle('Expected Title')" },
|
|
203
|
+
{ name: "verifyPartialTitle", category: "browser", example: "tSetup.verifyPartialTitle('Expected')" },
|
|
204
|
+
{ name: "getCurrentURL", category: "browser", example: "tSetup.getCurrentURL()" },
|
|
205
|
+
// Input
|
|
206
|
+
{ name: "enterText", category: "input", example: "tSetup.enterText('xpath', '//input[...]', 'value')" },
|
|
207
|
+
{ name: "typeText", category: "input", example: "tSetup.typeText('xpath', '//input[...]', 'value', '50')" },
|
|
208
|
+
{ name: "clearText", category: "input", example: "tSetup.clearText('xpath', '//input[...]')" },
|
|
209
|
+
{ name: "appendText", category: "input", example: "tSetup.appendText('xpath', '//input[...]', ' extra')" },
|
|
210
|
+
{ name: "getInputValue", category: "input", example: "tSetup.getInputValue('xpath', '//input', 'storeKey')" },
|
|
211
|
+
{ name: "setInputValue", category: "input", example: "tSetup.setInputValue('xpath', '//input', 'value')" },
|
|
212
|
+
{ name: "uploadFile", category: "input", example: "tSetup.uploadFile('xpath', '//input[@type=\"file\"]', '/path/file.pdf')" },
|
|
213
|
+
// Click
|
|
214
|
+
{ name: "clickElement", category: "click", example: "tSetup.clickElement('xpath', '//button[...]')" },
|
|
215
|
+
{ name: "doubleClick", category: "click", example: "tSetup.doubleClick('xpath', '//div[...]')" },
|
|
216
|
+
{ name: "rightClick", category: "click", example: "tSetup.rightClick('xpath', '//div[...]')" },
|
|
217
|
+
{ name: "hover", category: "click", example: "tSetup.hover('xpath', '//div[...]')" },
|
|
218
|
+
{ name: "clickByJS", category: "click", example: "tSetup.clickByJS('xpath', '//button[...]')" },
|
|
219
|
+
{ name: "clickIfPresent", category: "click", example: "tSetup.clickIfPresent('xpath', '//button[...]')" },
|
|
220
|
+
{ name: "dragAndDrop", category: "click", example: "tSetup.dragAndDrop('xpath', '//src', 'xpath', '//target')" },
|
|
221
|
+
{ name: "clickByText", category: "click", example: "tSetup.clickByText('Sign In')" },
|
|
222
|
+
{ name: "clickNthElement", category: "click", example: "tSetup.clickNthElement('xpath', '//li', '2')" },
|
|
223
|
+
{ name: "scrollAndClick", category: "click", example: "tSetup.scrollAndClick('xpath', '//button[...]')" },
|
|
224
|
+
// Dropdown
|
|
225
|
+
{ name: "selectDropdown", category: "dropdown", example: "tSetup.selectDropdown('xpath', '//select', 'Option Label')" },
|
|
226
|
+
{ name: "selectByIndex", category: "dropdown", example: "tSetup.selectByIndex('xpath', '//select', '2')" },
|
|
227
|
+
{ name: "selectByValue", category: "dropdown", example: "tSetup.selectByValue('xpath', '//select', 'optValue')" },
|
|
228
|
+
{ name: "selectCustomDropdown", category: "dropdown", example: "tSetup.selectCustomDropdown('xpath', '//div.dd', 'xpath', '//li')" },
|
|
229
|
+
{ name: "selectAutocomplete", category: "dropdown", example: "tSetup.selectAutocomplete('xpath', '//input', 'New York', 'xpath', '//li')" },
|
|
230
|
+
// Assertion
|
|
231
|
+
{ name: "verifyText", category: "assertion", example: "tSetup.verifyText('xpath', '//h1', 'Welcome')" },
|
|
232
|
+
{ name: "verifyTextContains", category: "assertion", example: "tSetup.verifyTextContains('xpath', '//p', 'success')" },
|
|
233
|
+
{ name: "verifyVisible", category: "assertion", example: "tSetup.verifyVisible('xpath', '//div[...]')" },
|
|
234
|
+
{ name: "verifyHidden", category: "assertion", example: "tSetup.verifyHidden('xpath', '//div[...]')" },
|
|
235
|
+
{ name: "verifyEnabled", category: "assertion", example: "tSetup.verifyEnabled('xpath', '//button[...]')" },
|
|
236
|
+
{ name: "verifyDisabled", category: "assertion", example: "tSetup.verifyDisabled('xpath', '//button[...]')" },
|
|
237
|
+
{ name: "verifyURL", category: "assertion", example: "tSetup.verifyURL('https://example.com/dashboard')" },
|
|
238
|
+
{ name: "verifyPartialURL", category: "assertion", example: "tSetup.verifyPartialURL('dashboard')" },
|
|
239
|
+
{ name: "verifyElementCount", category: "assertion", example: "tSetup.verifyElementCount('xpath', '//li', '5')" },
|
|
240
|
+
{ name: "verifyAttribute", category: "assertion", example: "tSetup.verifyAttribute('xpath', '//input', 'placeholder', 'Email')" },
|
|
241
|
+
{ name: "getText", category: "assertion", example: "tSetup.getText('xpath', '//h1', 'storeKey')" },
|
|
242
|
+
// Wait
|
|
243
|
+
{ name: "waitForElement", category: "wait", example: "tSetup.waitForElement('xpath', '//div', '10000')" },
|
|
244
|
+
{ name: "waitForElementHidden", category: "wait", example: "tSetup.waitForElementHidden('xpath', '//div[@id=\"loader\"]', '10000')" },
|
|
245
|
+
{ name: "waitForURL", category: "wait", example: "tSetup.waitForURL('dashboard', '10000')" },
|
|
246
|
+
{ name: "waitForPageLoad", category: "wait", example: "tSetup.waitForPageLoad('10000')" },
|
|
247
|
+
{ name: "waitForNetworkIdle", category: "wait", example: "tSetup.waitForNetworkIdle('10000')" },
|
|
248
|
+
{ name: "sleep", category: "wait", example: "tSetup.sleep('2000')" },
|
|
249
|
+
// Keyboard
|
|
250
|
+
{ name: "pressKey", category: "keyboard", example: "tSetup.pressKey('Enter')" },
|
|
251
|
+
{ name: "pressKeyOn", category: "keyboard", example: "tSetup.pressKeyOn('xpath', '//input', 'Enter')" },
|
|
252
|
+
{ name: "keyCombo", category: "keyboard", example: "tSetup.keyCombo('Control+A')" },
|
|
253
|
+
// Checkbox
|
|
254
|
+
{ name: "checkCheckbox", category: "checkbox", example: "tSetup.checkCheckbox('xpath', '//input[@type=\"checkbox\"]')" },
|
|
255
|
+
{ name: "uncheckCheckbox", category: "checkbox", example: "tSetup.uncheckCheckbox('xpath', '//input[@type=\"checkbox\"]')" },
|
|
256
|
+
{ name: "selectRadio", category: "checkbox", example: "tSetup.selectRadio('xpath', '//input[@type=\"radio\"][@value=\"opt1\"]')" },
|
|
257
|
+
// Table
|
|
258
|
+
{ name: "getTableRowCount", category: "table", example: "tSetup.getTableRowCount('xpath', '//table/tbody/tr', 'rowCount')" },
|
|
259
|
+
{ name: "verifyTableCell", category: "table", example: "tSetup.verifyTableCell('xpath', '//table/tbody/tr[1]/td[2]', 'Expected')" },
|
|
260
|
+
{ name: "clickTableRow", category: "table", example: "tSetup.clickTableRow('xpath', '//table/tbody/tr', '3')" },
|
|
261
|
+
{ name: "runCustomCode", category: "customcode", example: "tSetup.runCustomCode('const result = \"LN\" + Math.floor(Math.random()*1000);', 'result', '//input[@id=\"ref\"]')" }, ,
|
|
262
|
+
];
|
|
263
|
+
//# sourceMappingURL=controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controllers/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Page } from "playwright";
|
|
2
|
+
import { ActionResponse, TestCaseConfig } from "../types/types";
|
|
3
|
+
export declare class BrowserManager {
|
|
4
|
+
private browser?;
|
|
5
|
+
private context?;
|
|
6
|
+
private page?;
|
|
7
|
+
private shots;
|
|
8
|
+
private log;
|
|
9
|
+
private headless;
|
|
10
|
+
private timeout;
|
|
11
|
+
private slowMo;
|
|
12
|
+
private recordVideo;
|
|
13
|
+
private videoDir;
|
|
14
|
+
constructor(tConfig: TestCaseConfig);
|
|
15
|
+
openBrowser(type?: string): Promise<ActionResponse>;
|
|
16
|
+
private getLauncher;
|
|
17
|
+
closeBrowser(): Promise<ActionResponse>;
|
|
18
|
+
navigateToURL(url: string): Promise<ActionResponse>;
|
|
19
|
+
navigateBack(): Promise<ActionResponse>;
|
|
20
|
+
navigateForward(): Promise<ActionResponse>;
|
|
21
|
+
refreshPage(): Promise<ActionResponse>;
|
|
22
|
+
maximizeWindow(): Promise<ActionResponse>;
|
|
23
|
+
setWindowSize(width: string, height: string): Promise<ActionResponse>;
|
|
24
|
+
switchToTab(indexStr: string): Promise<ActionResponse>;
|
|
25
|
+
openNewTab(url?: string): Promise<ActionResponse>;
|
|
26
|
+
closeCurrentTab(): Promise<ActionResponse>;
|
|
27
|
+
waitForNewTab(triggerAction: () => Promise<void>): Promise<ActionResponse>;
|
|
28
|
+
getTitle(storeKey?: string): Promise<ActionResponse>;
|
|
29
|
+
verifyTitle(expected: string): Promise<ActionResponse>;
|
|
30
|
+
verifyPartialTitle(partial: string): Promise<ActionResponse>;
|
|
31
|
+
getCurrentURL(): Promise<ActionResponse>;
|
|
32
|
+
getPageSource(): Promise<ActionResponse>;
|
|
33
|
+
acceptAlert(promptText?: string): Promise<ActionResponse>;
|
|
34
|
+
dismissAlert(): Promise<ActionResponse>;
|
|
35
|
+
getAlertText(storeKey?: string): Promise<ActionResponse>;
|
|
36
|
+
switchToFrame(nameOrSelector: string): Promise<ActionResponse>;
|
|
37
|
+
executeScript(script: string): Promise<ActionResponse>;
|
|
38
|
+
scrollToBottom(): Promise<ActionResponse>;
|
|
39
|
+
scrollToTop(): Promise<ActionResponse>;
|
|
40
|
+
deleteAllCookies(): Promise<ActionResponse>;
|
|
41
|
+
clearLocalStorage(): Promise<ActionResponse>;
|
|
42
|
+
clearSessionStorage(): Promise<ActionResponse>;
|
|
43
|
+
takeScreenshot(): Promise<ActionResponse>;
|
|
44
|
+
getPage(): Page;
|
|
45
|
+
hasPage(): boolean;
|
|
46
|
+
}
|