猿问

如何使用 puppeteer 登录本网站?

我尝试https://www.extron.fr/home/login?ReturnUrl=/使用 puppeteer登录此网站,但它不起作用。每次我重新加载页面时,输入 ID 都会更改,因此我不能将它们用作选择器...


const puppeteer = require('puppeteer');

async function login() {

    const browser = await puppeteer.launch({ headless: false });

    const page = await browser.newPage();

    await page.setViewport({ width: 1200, height: 720 });

    await page.goto('https://www.extron.fr/home/login?ReturnUrl=/');

    await page.waitForNavigation();

    await page.type('.form-control email', 'test');

    await page.type('.form-control pr-5 password', 'test');

    await page.click('body > div > div > div.sign-in-window.modal--signin.shadow > form > fieldset > button');

    await page.waitForNavigation();

}

login();


犯罪嫌疑人X
浏览 180回答 3
3回答

拉丁的传说

其实你的选择器是错误的。类名 .email 需要一个点。取而代之的是,.form-control email你需要这个,.form-control.email最终代码应该是这样的await page.type('.form-control.email', 'test');await page.type('.form-control.pr-5.password', 'test');

慕桂英4014372

我试过这个代码,它的工作原理!谢谢大家的帮助const puppeteer = require('puppeteer');function run () {    return new Promise(async (reject) => {        try {            const browser = await puppeteer.launch({ headless: false });;            const page = await browser.newPage();            await page.setViewport({ width: 1200, height: 720 });            await page.goto('https://www.extron.fr/home/login?ReturnUrl=/');            await page.type('.email', 'test')            await page.type('.password', 'test')            await page.keyboard.press('Enter');        } catch (e) {            return reject(e);        }    })}run().then(console.log).catch(console.error);

德玛西亚99

您可以按标签名称和属性使用选择器,例如:const puppeteer = require('puppeteer');(async () => {    const browser = await puppeteer.launch({ headless: false, devtools: true });    const page = (await browser.pages())[0]    page.setDefaultNavigationTimeout(0)    await page.setViewport({ width: 1200, height: 720 })    await page.goto('https://www.extron.fr/home/login?ReturnUrl=/')    await page.waitForSelector('button[type="submit"]')    await page.type('input[type="email"]', 'your.email@address.com')    await page.type('input[type="password"]', 'A_SecretPassword123@#$~!')    await page.click('button[type="submit"]')    await page.waitForSelector('alert>strong', { visible: true, timeout: 0 })    await browser.close()})()
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答