clawdbot-workspace/mailchimp_signup.js
2026-02-05 23:01:36 -05:00

103 lines
3.3 KiB
JavaScript

const puppeteer = require('puppeteer-core');
(async () => {
try {
// Connect to existing Chrome instance
const browser = await puppeteer.connect({
browserURL: 'http://127.0.0.1:18800'
});
const pages = await browser.pages();
let page = null;
// Find the Mailchimp signup page
for (const p of pages) {
const url = p.url();
if (url.includes('mailchimp.com/signup')) {
page = p;
break;
}
}
if (!page) {
console.log('Could not find Mailchimp signup page');
await browser.disconnect();
process.exit(1);
}
console.log(`Found page: ${page.url()}`);
const email = 'jake@burtonmethod.com';
const password = 'Mailchimp2026!Secure';
// Use JavaScript to fill the form and dismiss banner
await page.evaluate((email, password) => {
// Dismiss cookie banner
const dismissBtn = document.querySelector('button');
const buttons = Array.from(document.querySelectorAll('button'));
const dismissButton = buttons.find(btn => btn.textContent.includes('Dismiss'));
if (dismissButton) {
dismissButton.click();
console.log('Clicked dismiss button');
}
// Wait a bit for banner to disappear
setTimeout(() => {
// Find and fill the form fields
const inputs = document.querySelectorAll('input[type="text"], input[type="email"]');
const passwordInput = document.querySelector('input[type="password"]');
// Fill email (first input)
if (inputs[0]) {
inputs[0].value = email;
inputs[0].dispatchEvent(new Event('input', { bubbles: true }));
inputs[0].dispatchEvent(new Event('change', { bubbles: true }));
console.log('Filled email field');
}
// Fill username (second input)
if (inputs[1]) {
inputs[1].value = email;
inputs[1].dispatchEvent(new Event('input', { bubbles: true }));
inputs[1].dispatchEvent(new Event('change', { bubbles: true }));
console.log('Filled username field');
}
// Fill password
if (passwordInput) {
passwordInput.value = password;
passwordInput.dispatchEvent(new Event('input', { bubbles: true }));
passwordInput.dispatchEvent(new Event('change', { bubbles: true }));
console.log('Filled password field');
}
// Click Sign up button
setTimeout(() => {
const signupButton = buttons.find(btn => btn.textContent.includes('Sign up'));
if (signupButton) {
signupButton.click();
console.log('Clicked Sign up button');
}
}, 500);
}, 1000);
}, email, password);
console.log('Form fill script executed');
// Wait for navigation
await page.waitForNavigation({ waitUntil: 'networkidle0', timeout: 30000 });
console.log(`Navigated to: ${page.url()}`);
// Take screenshot
await page.screenshot({ path: '/Users/jakeshore/.clawdbot/workspace/signup_result.png' });
console.log('Screenshot saved');
await browser.disconnect();
console.log('Signup completed successfully');
} catch (error) {
console.error('Error:', error.message);
process.exit(1);
}
})();