WishMeLz

生活其实很有趣

puppeteer脚本使用 浏览器

const puppeteer = require('puppeteer');

const browser = puppeteer.launch(
        {
            headless: true   // true关闭ui,false打开ui
        }
    );
const page = browser.newPage();  // 实例化

Api

page.goto(url)  // 进入一个网站
page.click('#btn')  // 点击某个元素

const input_areaUser = page.$('input');  // 获取某个元素
input_areaUser.type(username);   // 给元素添加内容,如:输入框添加用户名

page.waitForNavigation(); // 未知,第二次跳转的时候需要用
page.screenshot({ path: 'zz.png' });   // 截图
browser.close();  // 关闭

获取网页的元素

举个?

const puppeteer = require('puppeteer');
const { login,exchange } = require('./config')
async function run(username,psd) {
    const browser = await puppeteer.launch(
        {
            headless: true
        }
    );
    const page = await browser.newPage();

    await page.goto(login.url);  // 跳转连接
    
    // 点击输入框
    await page.click(login.username)  
    // 获取输入框
    const input_areaUser = await page.$(login.username);
    // 输入用户名
    await input_areaUser.type(username);

    // 点击密码框
    await page.click(login.psd)
    // 获取密码框
    const input_areaPsd = await page.$(login.psd);
    // 输入密码
    await input_areaPsd.type(psd);
    
    // 点击登录按钮
    await page.click(login.btn)
    browser.close();
}

run(user,psd)

补充

20版本之后 隐藏ui界面 headless: 'new'
在服务器运行: args: ['--no-sandbox', '--disable-setuid-sandbox']