82 lines
2.6 KiB
Python
82 lines
2.6 KiB
Python
#!/usr/bin/env python3
|
|
import asyncio
|
|
from playwright.async_api import async_playwright
|
|
import os
|
|
|
|
async def signup_mailchimp():
|
|
async with async_playwright() as p:
|
|
# Connect to existing Chrome instance
|
|
browser = await p.chromium.connect_over_cdp("http://127.0.0.1:18800")
|
|
|
|
# Get the page
|
|
context = browser.contexts[0]
|
|
pages = context.pages
|
|
page = None
|
|
for p in pages:
|
|
if 'mailchimp.com/signup' in p.url:
|
|
page = p
|
|
break
|
|
|
|
if not page:
|
|
print("Could not find Mailchimp signup page")
|
|
await browser.close()
|
|
return False
|
|
|
|
print(f"Found page: {page.url}")
|
|
|
|
# Dismiss cookie banner
|
|
try:
|
|
await page.wait_for_selector('button:has-text("Dismiss")', timeout=5000)
|
|
await page.click('button:has-text("Dismiss")')
|
|
print("Dismissed cookie banner")
|
|
await asyncio.sleep(1)
|
|
except:
|
|
print("No cookie banner or already dismissed")
|
|
|
|
# Fill out the form
|
|
email = "jake@burtonmethod.com"
|
|
password = "Mailchimp2026!Secure"
|
|
|
|
# Fill email field
|
|
await page.fill('input[name="email"]', email)
|
|
print(f"Filled email: {email}")
|
|
await asyncio.sleep(0.5)
|
|
|
|
# Fill username field (use email as username)
|
|
await page.fill('input[name="username"]', email)
|
|
print(f"Filled username: {email}")
|
|
await asyncio.sleep(0.5)
|
|
|
|
# Fill password field
|
|
await page.fill('input[name="new_password"]', password)
|
|
print(f"Filled password")
|
|
await asyncio.sleep(0.5)
|
|
|
|
# Click Sign up button
|
|
await page.click('button:has-text("Sign up")')
|
|
print("Clicked Sign up button")
|
|
|
|
# Wait for navigation or error
|
|
try:
|
|
await page.wait_for_load_state('networkidle', timeout=30000)
|
|
print(f"Navigated to: {page.url}")
|
|
|
|
# Take screenshot of result
|
|
await page.screenshot(path='/Users/jakeshore/.clawdbot/workspace/signup_result.png')
|
|
print("Screenshot saved")
|
|
|
|
return True
|
|
except Exception as e:
|
|
print(f"Error after signup: {e}")
|
|
await page.screenshot(path='/Users/jakeshore/.clawdbot/workspace/signup_error.png')
|
|
return False
|
|
|
|
await browser.close()
|
|
|
|
if __name__ == "__main__":
|
|
result = asyncio.run(signup_mailchimp())
|
|
if result:
|
|
print("Signup completed successfully")
|
|
else:
|
|
print("Signup failed")
|