使用 Puppeteer 单击选择器

Blu*_*lue 6 javascript node.js puppeteer

所以我在点击耐克网站上的登录按钮时遇到问题。

我不确定为什么它不断崩溃,因为它找不到我猜的选择器,但我不确定我做错了什么。

我还想说,在 puppeteer 崩溃之前我遇到了某种内存泄漏,有时如果我不及时在控制台内取消该进程,它甚至会完全崩溃我的 macbook。

编辑:此代码每当崩溃时也会导致内存泄漏,如果我没有足够快地取消应用程序,则迫使我必须硬重置我的Mac。

节点版本:14.4.0 Puppeteer 版本:5.2.1

当前代码:

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({
        headless: false,
        defaultViewport: null,
        args: ['--start-maximized']
    })

    const page = await browser.newPage()
    await page.goto('https://www.nike.com/')

    const winner = await Promise.race([
        page.waitForSelector('[data-path="join or login"]'),
        page.waitForSelector('[data-path="sign in"]')
    ])

    await page.click(winner._remoteObject.description)
})()
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

await page.click('button[data-var]="loginBtn"');
Run Code Online (Sandbox Code Playgroud)

小智 7

尝试一下:

await page.click('button[data-var="loginBtn"]');
Run Code Online (Sandbox Code Playgroud)