79495239

Date: 2025-03-09 00:42:48
Score: 3.5
Natty:
Report link
I'm getting the following error when I'm using playwright . does it only works with a puppeteer ? pls help .    Error while handling browser contexts: Error: browserContext.newPage: Protocol error 
(Target.createTarget): Not supported
    at main (xyz.js:68:42) {name: 'Error', stack: 'browserContext.newPage: Protocol error (Target.createTarget): Not supported', message: 'browserContext.newPage: Protocol error (Target.createTarget): Not supported'}

openAndConnectToVsCodeUsingCdp.ts:78
arg1 =
Error: browserContext.newPage: Protocol error (Target.createTarget): Not supported
    at main (xyz.js:68:42) {name: 'Error', stack: 'browserContext.newPage: Protocol error (Target.createTarget): Not supported', message: 'browserContext.newPage: Protocol error (Target.createTarget): Not supported'}
main @ xyz.ts:78:13
◀ await ▶
processTicksAndRejections @ internal/process/task_queues:105:5
◀ await ▶
processTicksAndRejections @ internal/process/task_queues:105:5
◀ await ▶
<anonymous> @ xyz.ts:100
<anonymous> @ internal/modules/cjs/loader:1723:14
<anonymous> @ internal/modules/cjs/loader:1888:10
<anonymous> @ internal/modules/cjs/loader:1458:32
<anonymous> @ internal/modules/cjs/loader:1275:12
traceSync @ diagnostics_channel:322:14
wrapModuleLoad @ internal/modules/cjs/loader:234:24
executeUserEntryPoint @ internal/modules/run_main:151:5
<anonymous> @ internal/main/run_main_module:33:47
Error: browserContext.newPage: Protocol error (Target.createTarget): Not supported
    at main (xyz.js:68:42) {name: 'Error', stack: 'browserContext.newPage: Protocol error (Target.createTarget): Not supported', message: 'browserContext.newPage: Protocol error (Target.createTarget): Not supported'}
import { chromium, ChromiumBrowser } from 'playwright';
import { spawn } from 'child_process';
import fetch from 'node-fetch';
import { delay } from '../../utils/delay';

function spawnVSCode(port: number) {
  return spawn(
    '/Applications/Visual Studio Code.app/Contents/MacOS/Electron',
    [
      `--remote-debugging-port=${port}`,
      '--user-data-dir=/tmp/foo', // Use temporary data dir to get welcome screen
      '--enable-logging',
    ],
    {
      detached: true,
      env: process.env,
      stdio: ['pipe', 'pipe', 'pipe']
    }
  );
}

async function main() {
  const port = 29378;
  const proc = spawnVSCode(port);

  // Wait for VSCode to start
  await delay(2000);

  // Get the WebSocket endpoint
  const response = await fetch(`http://127.0.0.1:${port}/json/list`);
  const endpoints = await response.json() as any[];
  const endpoint = endpoints.find(p => !p.title.match(/^sharedProcess/));

  if (!endpoint) {
    throw new Error('Could not find VSCode debug endpoint');
  }

  // Connect to the browser using CDP
  const browser = await chromium.connectOverCDP({
    endpointURL: endpoint.webSocketDebuggerUrl,
    slowMo: 50
  }) as ChromiumBrowser;

  let page;
  try {
    // Get all browser contexts
    const contexts = browser.contexts();
    console.log(`Found ${contexts.length} browser contexts`);

    if (contexts.length === 0) {
      // If no contexts exist, create a new one
      console.log('No contexts found, creating new context');
      const newContext = await browser.newContext();
      page = await newContext.newPage();
    } else {
      // Try to get page from existing contexts
      for (const context of contexts) {
        try {
          const pages = context.pages();
          if (pages.length > 0) {
            page = pages[0];
            console.log('Found existing page');
            break;
          }
        } catch (e) {
          console.log('Error accessing pages in context:', e);
          continue;
        }
      }

      // If still no page found, create new one in first context
      if (!page) {
        console.log('No pages found in existing contexts, creating new page');
        page = await contexts[0].newPage();
      }
    }
  } catch (e) {
    console.error('Error while handling browser contexts:', e);
    throw e;
  }

  if (!page) {
    throw new Error('Failed to get or create a page');
  }

  // Click new file button
  await page.click('[href="command:workbench.action.files.newUntitledFile"]');

  // Type some text
  await page.type('.monaco-editor', 'Hello! I am automating Visual Studio Code with Playwright!\n');
  await page.type('.monaco-editor', 'This is a super cool way of generating foolproof demos.');

  // Clean up after 1 second
  setTimeout(() => {
    proc.kill();
    process.exit(0);
  }, 1000);
}

main().catch(console.error);
Reasons:
  • RegEx Blacklisted phrase (3): pls help
  • RegEx Blacklisted phrase (1): I'm getting the following error
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: kcp