diff --git a/package.json b/package.json index 85c137e..5579bc6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lambdatest/smartui-cli", - "version": "3.0.2", + "version": "3.0.3", "description": "A command line interface (CLI) to run SmartUI tests on LambdaTest", "files": [ "dist/**/*" diff --git a/src/lib/constants.ts b/src/lib/constants.ts index b1c85ec..3c1b770 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -46,6 +46,12 @@ export default { EDGE_CHANNEL: 'msedge', WEBKIT: 'webkit', + // user agents + CHROME_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.107 Safari/537.3', + FIREFOX_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:112.0) Gecko/20100101 Firefox/112.0', + SAFARI_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15', + EDGE_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35', + // viewports MIN_VIEWPORT_HEIGHT: 1080, diff --git a/src/lib/processSnapshot.ts b/src/lib/processSnapshot.ts index ff5c06b..12d323a 100644 --- a/src/lib/processSnapshot.ts +++ b/src/lib/processSnapshot.ts @@ -1,6 +1,7 @@ import { Snapshot, Context, ProcessedSnapshot } from "../types.js"; import { scrollToBottomAndBackToTop, getRenderViewports } from "./utils.js" import { chromium, Locator } from "@playwright/test" +import constants from "./constants.js"; const MAX_RESOURCE_SIZE = 5 * (1024 ** 2); // 5MB var ALLOWED_RESOURCES = ['document', 'stylesheet', 'image', 'media', 'font', 'other']; @@ -12,7 +13,7 @@ export default async (snapshot: Snapshot, ctx: Context): Promise = {}; diff --git a/src/lib/screenshot.ts b/src/lib/screenshot.ts index b202be2..5d860c4 100644 --- a/src/lib/screenshot.ts +++ b/src/lib/screenshot.ts @@ -14,11 +14,16 @@ async function captureScreenshotsForConfig( let pageOptions = { waitUntil: process.env.SMARTUI_PAGE_WAIT_UNTIL_EVENT || 'load' }; let ssId = name.toLowerCase().replace(/\s/g, '_'); let context: BrowserContext; + let contextOptions: Record = {}; let page: Page; + if (browserName == constants.CHROME) contextOptions.userAgent = constants.CHROME_USER_AGENT; + else if (browserName == constants.FIREFOX) contextOptions.userAgent = constants.FIREFOX_USER_AGENT; + else if (browserName == constants.SAFARI) contextOptions.userAgent = constants.SAFARI_USER_AGENT; + else if (browserName == constants.EDGE) contextOptions.userAgent = constants.EDGE_USER_AGENT; try { const browser = browsers[browserName]; - context = await browser?.newContext(); + context = await browser?.newContext(contextOptions); page = await context?.newPage(); await page?.goto(url.trim(), pageOptions);