Skip to content

Commit f144f92

Browse files
authored
Merge pull request #69 from pinanks/DOT-3168
Add user agents for browser context options
2 parents 6e13dfb + c647eae commit f144f92

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

src/lib/constants.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ export default {
4646
EDGE_CHANNEL: 'msedge',
4747
WEBKIT: 'webkit',
4848

49+
// user agents
50+
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',
51+
FIREFOX_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:112.0) Gecko/20100101 Firefox/112.0',
52+
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',
53+
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',
54+
4955
// viewports
5056
MIN_VIEWPORT_HEIGHT: 1080,
5157

src/lib/processSnapshot.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Snapshot, Context, ProcessedSnapshot } from "../types.js";
22
import { scrollToBottomAndBackToTop, getRenderViewports } from "./utils.js"
33
import { chromium, Locator } from "@playwright/test"
4+
import constants from "./constants.js";
45

56
const MAX_RESOURCE_SIZE = 5 * (1024 ** 2); // 5MB
67
var ALLOWED_RESOURCES = ['document', 'stylesheet', 'image', 'media', 'font', 'other'];
@@ -12,7 +13,7 @@ export default async (snapshot: Snapshot, ctx: Context): Promise<Record<string,
1213
ctx.log.debug(`Processing snapshot ${snapshot.name}`);
1314

1415
if (!ctx.browser) ctx.browser = await chromium.launch({ headless: true });
15-
const context = await ctx.browser.newContext()
16+
const context = await ctx.browser.newContext({userAgent: constants.CHROME_USER_AGENT})
1617
const page = await context.newPage();
1718
let cache: Record<string, any> = {};
1819

src/lib/screenshot.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,16 @@ async function captureScreenshotsForConfig(
1414
let pageOptions = { waitUntil: process.env.SMARTUI_PAGE_WAIT_UNTIL_EVENT || 'load' };
1515
let ssId = name.toLowerCase().replace(/\s/g, '_');
1616
let context: BrowserContext;
17+
let contextOptions: Record<string, any> = {};
1718
let page: Page;
19+
if (browserName == constants.CHROME) contextOptions.userAgent = constants.CHROME_USER_AGENT;
20+
else if (browserName == constants.FIREFOX) contextOptions.userAgent = constants.FIREFOX_USER_AGENT;
21+
else if (browserName == constants.SAFARI) contextOptions.userAgent = constants.SAFARI_USER_AGENT;
22+
else if (browserName == constants.EDGE) contextOptions.userAgent = constants.EDGE_USER_AGENT;
1823

1924
try {
2025
const browser = browsers[browserName];
21-
context = await browser?.newContext();
26+
context = await browser?.newContext(contextOptions);
2227
page = await context?.newPage();
2328

2429
await page?.goto(url.trim(), pageOptions);

0 commit comments

Comments
 (0)