Skip to content

Commit 5e9d1ac

Browse files
add support for capturing screenshot before dom and upload
1 parent de3eb57 commit 5e9d1ac

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

packages/playwright/src/smartui.js

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,35 @@ async function smartuiSnapshot(page, name, options = {}) {
99

1010
let log = utils.logger(pkgName);
1111
try {
12+
if (process.env.UPLOAD_SDK_SCREENSHOT) {
13+
try {
14+
const screenshotBuffer = await page.screenshot({ fullPage: true });
15+
const screenshotBlob = new Blob([screenshotBuffer], { type: 'image/png' });
16+
const form = new FormData();
17+
form.append('screenshotName', name);
18+
form.append('uploadToS3Only', true);
19+
form.append('buildId', process.env.SMARTUI_BUILD_ID || '');
20+
form.append('screenshot', screenshotBlob, {
21+
filename: `${name.replace(/[^a-z0-9]/gi, '_')}.png`,
22+
contentType: 'image/png',
23+
});
24+
const uploadUrl = 'https://api.lambdatest.com/visualui/1.0/screenshot';
25+
let response;
26+
try {
27+
response = await fetch(uploadUrl, {
28+
method: 'POST',
29+
headers: {
30+
projectToken: process.env.PROJECT_TOKEN || '',
31+
},
32+
body: form,
33+
});
34+
} catch (uploadError) {
35+
36+
}
37+
} catch (screenshotError) {
38+
39+
}
40+
}
1241
const resp = await utils.fetchDOMSerializer();
1342
await page.evaluate(resp.body.data.dom);
1443

@@ -27,7 +56,7 @@ async function smartuiSnapshot(page, name, options = {}) {
2756
log.info(`Snapshot captured: ${name}`);
2857
} catch (error) {
2958
log.error(`SmartUI snapshot failed "${name}"`);
30-
log.error(error);
59+
log.error(error);
3160
}
3261
}
3362

0 commit comments

Comments
 (0)