Mostly example using Playwright in JavaScript is using Chromium that bundled with Playwright. How about if we want to use existing or external Chrome?
No worries, it means you have to set the Playwright to connect to a Chromium instance manually using Chrome DevTools Protocol (CDP) and that means you should run the Chrome with --remote-debugging-port=9222
.
For the external Chrome I recommend using Chrome for Testing that is good for this situation. Just to to https://developer.chrome.com/blog/chrome-for-testing to read more.
I have created the repository and quick script sample about this. Just go to https://github.com/sonyarianto/playwright-using-external-chrome
Wanna quick try? Here is the script index.js
.
import { chromium } from 'playwright';
(async () => {
try {
const browser = await chromium.connectOverCDP('http://localhost:9222');
console.log(browser.isConnected() && 'Connected to Chrome.');
console.log(`Contexts in CDP session: ${browser.contexts().length}.`);
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'example.png' });
await page.close();
await context.close();
await browser.close();
} catch (error) {
console.log('Cannot connect to Chrome.');
}
})();
Then run it like this. Make sure you already run the Chrome first (with argument --remote-debugging-port=9222
).
node ./index.js
Happy using Playwright.
Top comments (3)
I am getting this error while running the code. Please can you help what is going wrong
Running chrome in remote debugging port 9223
PS B:\job-search\jobsearchplaywright> npx ts-node excelToGoogleSearch.ts
node:internal/modules/cjs/loader:1228
throw err;
^
Error: Cannot find module './excelToGoogleSearch.ts'
Require stack:
solved it
its just a missing import issue
good job man!
Thanks!