diff --git a/packages/playwright/package.json b/packages/playwright/package.json index 82ad2ae..aced552 100644 --- a/packages/playwright/package.json +++ b/packages/playwright/package.json @@ -1,6 +1,6 @@ { "name": "@lambdatest/playwright-driver", - "version": "1.0.6", + "version": "1.0.7", "description": "Playwright driver for all Lambdatest functionalities", "main": "index.js", "repository": { diff --git a/packages/playwright/src/smartui.js b/packages/playwright/src/smartui.js index 64ad6ee..694a72d 100644 --- a/packages/playwright/src/smartui.js +++ b/packages/playwright/src/smartui.js @@ -9,6 +9,38 @@ async function smartuiSnapshot(page, name, options = {}) { let log = utils.logger(pkgName); try { + if (process.env.UPLOAD_SDK_SCREENSHOT) { + try { + const screenshotBuffer = await page.screenshot({ fullPage: true }); + const screenshotBlob = new Blob([screenshotBuffer], { type: 'image/png' }); + const form = new FormData(); + //screenshot name is name_uuid use snapshotUuid = uuidv4() + const snapshotid = Math.floor(100000 + Math.random() * 900000); + const screenshotName = `${name}_${snapshotid}`; + form.append('screenshotName', screenshotName); + form.append('uploadToS3Only', true); + form.append('buildId', process.env.SMARTUI_BUILD_ID || ''); + form.append('screenshot', screenshotBlob, { + filename: `${screenshotName.replace(/[^a-z0-9]/gi, '_')}.png`, + contentType: 'image/png', + }); + const uploadUrl = 'https://api.lambdatest.com/visualui/1.0/screenshot'; + let response; + try { + response = await fetch(uploadUrl, { + method: 'POST', + headers: { + projectToken: process.env.PROJECT_TOKEN || '', + }, + body: form, + }); + } catch (uploadError) { + log.info('Failed to upload sdk screenshot:', uploadError); + } + } catch (screenshotError) { + log.info('Failed to capture sdk screenshot:', screenshotError); + } + } const resp = await utils.fetchDOMSerializer(); await page.evaluate(resp.body.data.dom); @@ -27,7 +59,7 @@ async function smartuiSnapshot(page, name, options = {}) { log.info(`Snapshot captured: ${name}`); } catch (error) { log.error(`SmartUI snapshot failed "${name}"`); - log.error(error); + log.error(error); } }