donobu 2.18.4 → 2.18.5
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/dist/assets/control-panel.js +7 -1
- package/dist/assets/generated/parameter-schemas.json +44 -0
- package/dist/assets/generated/version +1 -1
- package/dist/assets/page-interactions-tracker.js +27 -30
- package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/bindings/PageInteractionTracker.js +1 -1
- package/dist/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/esm/assets/control-panel.js +7 -1
- package/dist/esm/assets/generated/parameter-schemas.json +44 -0
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/assets/page-interactions-tracker.js +27 -30
- package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.js +1 -1
- package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/esm/lib/testExtension.d.ts.map +1 -1
- package/dist/esm/lib/testExtension.js +9 -9
- package/dist/esm/lib/testExtension.js.map +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/esm/managers/CodeGenerator.js +34 -1
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- package/dist/esm/managers/ControlPanel.d.ts.map +1 -1
- package/dist/esm/managers/ControlPanel.js +7 -5
- package/dist/esm/managers/ControlPanel.js.map +1 -1
- package/dist/esm/managers/DonobuFlow.d.ts +3 -4
- package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +59 -44
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +12 -12
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/ToolManager.d.ts.map +1 -1
- package/dist/esm/managers/ToolManager.js +4 -2
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/FlowMetadata.d.ts +52 -0
- package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistence.d.ts +11 -9
- package/dist/esm/persistence/flows/FlowsPersistence.d.ts.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts +4 -5
- package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js +76 -77
- package/dist/esm/persistence/flows/FlowsPersistenceAwsS3.js.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js +2 -2
- package/dist/esm/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.d.ts +7 -7
- package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.d.ts.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.js +51 -60
- package/dist/esm/persistence/flows/FlowsPersistenceFilesystem.js.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +4 -5
- package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +40 -41
- package/dist/esm/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts +4 -4
- package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js +40 -40
- package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceSupabase.d.ts +4 -5
- package/dist/esm/persistence/flows/FlowsPersistenceSupabase.d.ts.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceSupabase.js +37 -37
- package/dist/esm/persistence/flows/FlowsPersistenceSupabase.js.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts +7 -7
- package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts.map +1 -1
- package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js +35 -33
- package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js.map +1 -1
- package/dist/esm/tools/AssertPageTool.d.ts +34 -0
- package/dist/esm/tools/AssertPageTool.d.ts.map +1 -0
- package/dist/esm/tools/AssertPageTool.js +156 -0
- package/dist/esm/tools/AssertPageTool.js.map +1 -0
- package/dist/esm/tools/AssertTool.js +1 -1
- package/dist/esm/tools/AssertTool.js.map +1 -1
- package/dist/esm/tools/ClickTool.d.ts.map +1 -1
- package/dist/esm/tools/ClickTool.js +3 -0
- package/dist/esm/tools/ClickTool.js.map +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
- package/dist/esm/tools/SolveMfaChallenge.d.ts.map +1 -1
- package/dist/esm/tools/SolveMfaChallenge.js.map +1 -1
- package/dist/esm/utils/BrowserUtils.d.ts +52 -0
- package/dist/esm/utils/BrowserUtils.d.ts.map +1 -0
- package/dist/esm/utils/BrowserUtils.js +340 -0
- package/dist/esm/utils/BrowserUtils.js.map +1 -0
- package/dist/esm/utils/PlaywrightUtils.d.ts +15 -11
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +79 -122
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/lib/autoTest.d.ts +2 -0
- package/dist/lib/autoTest.d.ts.map +1 -0
- package/dist/lib/autoTest.js +17 -0
- package/dist/lib/autoTest.js.map +1 -0
- package/dist/lib/testExtension.d.ts.map +1 -1
- package/dist/lib/testExtension.js +9 -9
- package/dist/lib/testExtension.js.map +1 -1
- package/dist/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/managers/CodeGenerator.js +34 -1
- package/dist/managers/CodeGenerator.js.map +1 -1
- package/dist/managers/ControlPanel.d.ts.map +1 -1
- package/dist/managers/ControlPanel.js +7 -5
- package/dist/managers/ControlPanel.js.map +1 -1
- package/dist/managers/DonobuFlow.d.ts +3 -4
- package/dist/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.js +59 -44
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +12 -12
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/ToolManager.d.ts.map +1 -1
- package/dist/managers/ToolManager.js +4 -2
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/BrowserFramework.d.ts +2 -12
- package/dist/models/BrowserFramework.d.ts.map +1 -1
- package/dist/models/BrowserFramework.js +91 -66
- package/dist/models/BrowserFramework.js.map +1 -1
- package/dist/models/FlowMetadata.d.ts +52 -0
- package/dist/models/FlowMetadata.d.ts.map +1 -1
- package/dist/persistence/flows/FlowsPersistence.d.ts +11 -9
- package/dist/persistence/flows/FlowsPersistence.d.ts.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts +4 -5
- package/dist/persistence/flows/FlowsPersistenceAwsS3.d.ts.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceAwsS3.js +76 -77
- package/dist/persistence/flows/FlowsPersistenceAwsS3.js.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js +2 -2
- package/dist/persistence/flows/FlowsPersistenceFactoryImpl.js.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceFilesystem.d.ts +7 -7
- package/dist/persistence/flows/FlowsPersistenceFilesystem.d.ts.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceFilesystem.js +51 -60
- package/dist/persistence/flows/FlowsPersistenceFilesystem.js.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts +4 -5
- package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js +40 -41
- package/dist/persistence/flows/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts +4 -4
- package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceSqlite.js +40 -40
- package/dist/persistence/flows/FlowsPersistenceSqlite.js.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceSupabase.d.ts +4 -5
- package/dist/persistence/flows/FlowsPersistenceSupabase.d.ts.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceSupabase.js +37 -37
- package/dist/persistence/flows/FlowsPersistenceSupabase.js.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts +7 -7
- package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts.map +1 -1
- package/dist/persistence/flows/FlowsPersistenceVolatile.js +35 -33
- package/dist/persistence/flows/FlowsPersistenceVolatile.js.map +1 -1
- package/dist/tools/AssertPageTool.d.ts +34 -0
- package/dist/tools/AssertPageTool.d.ts.map +1 -0
- package/dist/tools/AssertPageTool.js +156 -0
- package/dist/tools/AssertPageTool.js.map +1 -0
- package/dist/tools/AssertTool.js +1 -1
- package/dist/tools/AssertTool.js.map +1 -1
- package/dist/tools/ClickTool.d.ts.map +1 -1
- package/dist/tools/ClickTool.js +3 -0
- package/dist/tools/ClickTool.js.map +1 -1
- package/dist/tools/DetectBrokenLinksTool.js +1 -1
- package/dist/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
- package/dist/tools/SolveMfaChallenge.d.ts.map +1 -1
- package/dist/tools/SolveMfaChallenge.js.map +1 -1
- package/dist/utils/BrowserUtils.d.ts +52 -0
- package/dist/utils/BrowserUtils.d.ts.map +1 -0
- package/dist/utils/BrowserUtils.js +340 -0
- package/dist/utils/BrowserUtils.js.map +1 -0
- package/dist/utils/PlaywrightUtils.d.ts +15 -11
- package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.js +79 -122
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,7 +26,7 @@ class PlaywrightUtils {
|
|
|
26
26
|
* Note that if the Donobu control panel is present in the page, it will be
|
|
27
27
|
* excluded from the screenshot.
|
|
28
28
|
*/
|
|
29
|
-
static async
|
|
29
|
+
static async takeViewportScreenshot(page, type = 'jpeg') {
|
|
30
30
|
try {
|
|
31
31
|
const style = `#${ControlPanel_1.ControlPanel.DONOBU_CONTROL_PANEL_ELEMENT_ID} { display: none !important; }`;
|
|
32
32
|
return await page.screenshot({
|
|
@@ -43,6 +43,84 @@ class PlaywrightUtils {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Captures up to three screenshots of the given page.
|
|
48
|
+
*
|
|
49
|
+
* - `viewport` : exact current viewport
|
|
50
|
+
* - `aboveViewport` : up to half-viewport preview just above the fold, or `null`
|
|
51
|
+
* - `belowViewport` : up to half-viewport preview just below the fold, or `null`
|
|
52
|
+
*
|
|
53
|
+
* All images are returned as JPEG buffers.
|
|
54
|
+
*/
|
|
55
|
+
static async takePageScreenshots(page) {
|
|
56
|
+
// Take the screenshot of the current viewport immediately – this is always available.
|
|
57
|
+
const viewportBuffer = await PlaywrightUtils.takeViewportScreenshot(page, 'jpeg');
|
|
58
|
+
// If the viewport size is not available we cannot reliably scroll.
|
|
59
|
+
const viewportSize = page.viewportSize();
|
|
60
|
+
if (!viewportSize) {
|
|
61
|
+
return {
|
|
62
|
+
aboveViewport: null,
|
|
63
|
+
viewport: viewportBuffer,
|
|
64
|
+
belowViewport: null,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const viewportHeight = viewportSize.height;
|
|
68
|
+
const halfViewport = Math.floor(viewportHeight / 2);
|
|
69
|
+
// Capture original scroll position & page dimensions so we can both
|
|
70
|
+
// determine if we *can* scroll and later restore state.
|
|
71
|
+
const { originalScrollY, scrollHeight } = await page.evaluate(() => {
|
|
72
|
+
return {
|
|
73
|
+
originalScrollY: window.scrollY || window.pageYOffset || 0,
|
|
74
|
+
scrollHeight: document.documentElement.scrollHeight ||
|
|
75
|
+
document.body.scrollHeight ||
|
|
76
|
+
0,
|
|
77
|
+
};
|
|
78
|
+
});
|
|
79
|
+
let aboveBuffer = null;
|
|
80
|
+
let belowBuffer = null;
|
|
81
|
+
// Always wrap scrolling logic with try/finally so that we restore the
|
|
82
|
+
// initial scroll position even when an unexpected error occurs.
|
|
83
|
+
try {
|
|
84
|
+
/************************************************************
|
|
85
|
+
* Capture the area *above* the current viewport ("just above the fold")
|
|
86
|
+
************************************************************/
|
|
87
|
+
if (originalScrollY > 0) {
|
|
88
|
+
const targetY = Math.max(0, originalScrollY - halfViewport);
|
|
89
|
+
await page.evaluate((y) => window.scrollTo(0, y), targetY);
|
|
90
|
+
// Give the browser a tiny bit of time – many sites throttle paint.
|
|
91
|
+
await page.waitForTimeout(100);
|
|
92
|
+
aboveBuffer = await PlaywrightUtils.takeViewportScreenshot(page, 'jpeg');
|
|
93
|
+
}
|
|
94
|
+
/************************************************************
|
|
95
|
+
* Capture the area *below* the current viewport ("just below the fold")
|
|
96
|
+
************************************************************/
|
|
97
|
+
if (originalScrollY + viewportHeight < scrollHeight) {
|
|
98
|
+
const targetY = Math.min(scrollHeight - viewportHeight, originalScrollY + halfViewport);
|
|
99
|
+
await page.evaluate((y) => window.scrollTo(0, y), targetY);
|
|
100
|
+
await page.waitForTimeout(100);
|
|
101
|
+
belowBuffer = await PlaywrightUtils.takeViewportScreenshot(page, 'jpeg');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
// Always attempt to restore the page to its initial scroll position so
|
|
106
|
+
// that callers see *no* side‑effects.
|
|
107
|
+
try {
|
|
108
|
+
if ((await page.evaluate(() => window.scrollY)) !== originalScrollY) {
|
|
109
|
+
await page.evaluate((y) => window.scrollTo(0, y), originalScrollY);
|
|
110
|
+
await page.waitForTimeout(50);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (_restoreError) {
|
|
114
|
+
// If we cannot restore (e.g., page already closed) swallow – nothing we
|
|
115
|
+
// can do and the caller will receive the original exception.
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
aboveViewport: aboveBuffer,
|
|
120
|
+
viewport: viewportBuffer,
|
|
121
|
+
belowViewport: belowBuffer,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
46
124
|
/**
|
|
47
125
|
* Generate valid selectors for the given element. The generated selectors are
|
|
48
126
|
* in a priority order based on their ability to identify the given element.
|
|
@@ -156,127 +234,6 @@ class PlaywrightUtils {
|
|
|
156
234
|
}
|
|
157
235
|
}
|
|
158
236
|
}
|
|
159
|
-
/**
|
|
160
|
-
* Takes a screenshot of the webpage as if it were scrolled down by one viewport.
|
|
161
|
-
* If the page cannot be scrolled as a whole, tries to find and scroll individual
|
|
162
|
-
* scrollable elements on the page. After taking the screenshot, it reverts to
|
|
163
|
-
* the original scroll position.
|
|
164
|
-
*
|
|
165
|
-
* @param page The Playwright Page to take a screenshot of
|
|
166
|
-
* @returns An image buffer of the scrolled down view, or undefined if scrolling isn't possible
|
|
167
|
-
*/
|
|
168
|
-
static async getScrolledDownScreenShot(page) {
|
|
169
|
-
try {
|
|
170
|
-
// Get the current scroll position and viewport height
|
|
171
|
-
const { scrollX, scrollY, viewportHeight } = await page.evaluate(() => {
|
|
172
|
-
return {
|
|
173
|
-
scrollX: window.scrollX,
|
|
174
|
-
scrollY: window.scrollY,
|
|
175
|
-
viewportHeight: window.innerHeight,
|
|
176
|
-
};
|
|
177
|
-
});
|
|
178
|
-
// Step 1: Try to scroll the window down by one viewport
|
|
179
|
-
await page.evaluate((viewportHeight) => {
|
|
180
|
-
window.scrollBy(0, viewportHeight);
|
|
181
|
-
}, viewportHeight);
|
|
182
|
-
// Check if the page actually scrolled
|
|
183
|
-
const newScrollY = await page.evaluate(() => window.scrollY);
|
|
184
|
-
// If the window scrolled successfully, take the screenshot and return
|
|
185
|
-
if (newScrollY > scrollY) {
|
|
186
|
-
// Take the screenshot
|
|
187
|
-
const screenshot = await PlaywrightUtils.takeScreenshot(page);
|
|
188
|
-
// Scroll back to the original position
|
|
189
|
-
await page.evaluate(([x, y]) => {
|
|
190
|
-
window.scrollTo(x, y);
|
|
191
|
-
}, [scrollX, scrollY]);
|
|
192
|
-
return screenshot;
|
|
193
|
-
}
|
|
194
|
-
// Step 2: If window didn't scroll, try to find scrollable elements
|
|
195
|
-
const didScrollElement = await page.evaluate(() => {
|
|
196
|
-
// Find all potentially scrollable elements
|
|
197
|
-
function findScrollableElements() {
|
|
198
|
-
const allElements = document.querySelectorAll('*');
|
|
199
|
-
const scrollableElements = [];
|
|
200
|
-
allElements.forEach((el) => {
|
|
201
|
-
const style = window.getComputedStyle(el);
|
|
202
|
-
const overflowY = style.getPropertyValue('overflow-y');
|
|
203
|
-
const overflowX = style.getPropertyValue('overflow-x');
|
|
204
|
-
const overflow = style.getPropertyValue('overflow');
|
|
205
|
-
// Check if the element has scrollable properties
|
|
206
|
-
if (overflowY === 'auto' ||
|
|
207
|
-
overflowY === 'scroll' ||
|
|
208
|
-
overflowX === 'auto' ||
|
|
209
|
-
overflowX === 'scroll' ||
|
|
210
|
-
overflow === 'auto' ||
|
|
211
|
-
overflow === 'scroll') {
|
|
212
|
-
// Additional check to see if the element actually has content to scroll
|
|
213
|
-
const scrollHeight = el.scrollHeight;
|
|
214
|
-
const clientHeight = el.clientHeight;
|
|
215
|
-
if (scrollHeight > clientHeight) {
|
|
216
|
-
scrollableElements.push({
|
|
217
|
-
element: el,
|
|
218
|
-
area: el.clientWidth * el.clientHeight, // Calculate area for sorting
|
|
219
|
-
scrollTop: el.scrollTop, // Save original scroll position
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
return scrollableElements;
|
|
225
|
-
}
|
|
226
|
-
// Find and sort scrollable elements by size (largest first)
|
|
227
|
-
const scrollableElements = findScrollableElements().sort((a, b) => b.area - a.area);
|
|
228
|
-
let didScroll = false;
|
|
229
|
-
// Try to scroll each element until one successfully scrolls
|
|
230
|
-
for (const { element } of scrollableElements) {
|
|
231
|
-
const originalScrollTop = element.scrollTop;
|
|
232
|
-
// Try to scroll down by the element's client height
|
|
233
|
-
element.scrollTop += element.clientHeight;
|
|
234
|
-
// Check if scrolling was successful
|
|
235
|
-
if (element.scrollTop > originalScrollTop) {
|
|
236
|
-
didScroll = true;
|
|
237
|
-
// Save the element in the window object so we can access it later
|
|
238
|
-
// @ts-ignore
|
|
239
|
-
window.__lastScrolledElement = element;
|
|
240
|
-
// @ts-ignore
|
|
241
|
-
window.__lastScrolledElementOriginalPosition = originalScrollTop;
|
|
242
|
-
break;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
return didScroll;
|
|
246
|
-
});
|
|
247
|
-
// If no element could be scrolled, return undefined
|
|
248
|
-
if (!didScrollElement) {
|
|
249
|
-
return undefined;
|
|
250
|
-
}
|
|
251
|
-
// Take a screenshot after scrolling the element
|
|
252
|
-
const screenshot = await PlaywrightUtils.takeScreenshot(page);
|
|
253
|
-
// Restore the original scroll position of the element
|
|
254
|
-
await page.evaluate(() => {
|
|
255
|
-
if (
|
|
256
|
-
// @ts-ignore
|
|
257
|
-
window.__lastScrolledElement &&
|
|
258
|
-
// @ts-ignore
|
|
259
|
-
window.__lastScrolledElementOriginalPosition !== undefined) {
|
|
260
|
-
// @ts-ignore
|
|
261
|
-
window.__lastScrolledElement.scrollTop = window.__lastScrolledElementOriginalPosition;
|
|
262
|
-
// Clean up
|
|
263
|
-
// @ts-ignore
|
|
264
|
-
delete window.__lastScrolledElement;
|
|
265
|
-
// @ts-ignore
|
|
266
|
-
delete window.__lastScrolledElementOriginalPosition;
|
|
267
|
-
}
|
|
268
|
-
});
|
|
269
|
-
return screenshot;
|
|
270
|
-
}
|
|
271
|
-
catch (error) {
|
|
272
|
-
if (PlaywrightUtils.isPageClosedError(error)) {
|
|
273
|
-
throw new PageClosedException_1.PageClosedException();
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
throw error;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
237
|
}
|
|
281
238
|
exports.PlaywrightUtils = PlaywrightUtils;
|
|
282
239
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaywrightUtils.js","sourceRoot":"","sources":["../../src/utils/PlaywrightUtils.ts"],"names":[],"mappings":";;;;;;AAEA,qCAAqC;AACrC,2CAAwC;AACxC,gDAAwB;AACxB,2EAAwE;AACxE,iDAAsC;AACtC,2DAAwD;AACxD,6DAA0D;AAC1D,gFAA6E;AAE7E;;;GAGG;AACH,MAAa,eAAe;IAoB1B;;;;;;;;OAQG;IACI,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"PlaywrightUtils.js","sourceRoot":"","sources":["../../src/utils/PlaywrightUtils.ts"],"names":[],"mappings":"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"}
|