为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 puppeteer 登录本网站?

如何使用 puppeteer 登录本网站?

犯罪嫌疑人X 2021-12-12 18:02:20
我尝试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();
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

其实你的选择器是错误的。类名 .email 需要一个点。


取而代之的是,


.form-control email

你需要这个,


.form-control.email

最终代码应该是这样的


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

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


查看完整回答
反对 回复 2021-12-12
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

我试过这个代码,它的工作原理!谢谢大家的帮助


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);


查看完整回答
反对 回复 2021-12-12
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

您可以按标签名称和属性使用选择器,例如:


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()

})()


查看完整回答
反对 回复 2021-12-12
  • 3 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信