chore: add support for device (#300)

Fixes https://github.com/microsoft/playwright-mcp/issues/294
This commit is contained in:
Pavel Feldman 2025-04-29 19:51:00 -07:00 committed by GitHub
parent 40d125f0bb
commit 3f72fe53ec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 66 additions and 10 deletions

View file

@ -18,11 +18,12 @@ import fs from 'fs';
import net from 'net';
import os from 'os';
import path from 'path';
import { devices } from 'playwright';
import { sanitizeForFilePath } from './tools/utils';
import type { Config, ToolCapability } from '../config';
import type { LaunchOptions } from 'playwright';
import type { BrowserContextOptions, LaunchOptions } from 'playwright';
export type CLIOptions = {
browser?: string;
@ -30,6 +31,7 @@ export type CLIOptions = {
cdpEndpoint?: string;
executablePath?: string;
headless?: boolean;
device?: string;
userDataDir?: string;
port?: number;
host?: string;
@ -93,11 +95,14 @@ export async function configFromCLIOptions(cliOptions: CLIOptions): Promise<Conf
if (browserName === 'chromium')
(launchOptions as any).webSocketPort = await findFreePort();
const contextOptions: BrowserContextOptions | undefined = cliOptions.device ? devices[cliOptions.device] : undefined;
return {
browser: {
browserName,
userDataDir: cliOptions.userDataDir ?? await createUserDataDir({ browserName, channel }),
launchOptions,
contextOptions,
cdpEndpoint: cliOptions.cdpEndpoint,
},
server: {