import path from 'path' export let USER_DATA_DIR; export const windowDimension = [1920,1080] // 启动浏览器并登录淘宝 export const loginTaobao = async () => { const puppeteer = require('puppeteer') USER_DATA_DIR = path.join(process.cwd(), 'tmp/user_data'); // 启动浏览器 const browser = await puppeteer.launch({ headless: false, userDataDir: USER_DATA_DIR, defaultViewport: { width: windowDimension[0], height: windowDimension[1] }, args: [ "--no-sandbox", "--proxy-server=https=192.168.31.121:1080", "--ignore-certificate-errors", "--ignore-certificate-errors-spki-list", `--window-size=${windowDimension.join(',')}`, ] }); const page = await browser.newPage(); await page.goto('https://www.taobao.com'); // 设置视口大小与实际窗口大小一致 await page.setViewport({ width: windowDimension[0], height: windowDimension[1] }); await page.waitForSelector('.site-nav-login-info-nick '); // 等待手动扫码登录 return page; }; // 异步读取用户输入并提供默认值 export const askQuestion = (query: string, defaultValue?) => { const rl = getReadline() return new Promise(resolve => { rl.question(query, answer => { if (answer.trim() === '' && defaultValue) { resolve(defaultValue); } else { resolve(answer); } rl.close() }); }); } export const getReadline = () => require('readline').createInterface({ input: process.stdin, output: process.stdout });