Here’s how I’ve set things up to partially automate my workflow.
For example, when I need to log in to an insurance company’s website and fill out an application, I store the applicant information (name, birthday, address) in an Excel file. I log in to the site manually, then launch a Node.js script to handle the repetitive parts. This way, I can monitor each step as it runs and still perform the final review myself.
Steps:
1. Install Node.js and Puppeteer
# install the package globally npm install -g puppeteer2. Start Chrome with a debugging port
Launch Chrome with the option --remote-debugging-port=8888. To confirm it’s running correctly, check either of these URLs in your browser:
chrome://version/
http://127.0.0.1:8888/json/version (shows Chrome’s DevTools JSON endpoint)
3. Log in and let Puppeteer handle the routine
After logging in to the site manually, you can add code at the // DO SOMETHING placeholder to automate whichever steps you’d like.
const url = 'https://www.manulife.ca';
const puppeteer = require('puppeteer');
(async () => {
// connect to Chrome
const browser = await puppeteer.connect({
browserURL: 'http://127.0.0.1:8888', // debug endpoint
defaultViewport: null,
});
const pages = await browser.pages();
console.log('NOTE: Pages currently open:', pages.map(p => p.url()));
let page = pages.find(p => p.url().includes(url));
if (page) {
console.log('NOTE: Attaching existing page:', page.url());
await page.bringToFront();
} else {
console.log('NOTE: Creating new one...');
page = await browser.newPage();
await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 90_000 });
}
// DO SOMETHING ...
browser.disconnect();
})().catch(err => {
console.log("ERROR occurs.");
console.error(err);
process.exit(1);
});
No comments:
Post a Comment