javascript - 使用 Puppeteer 单击选择器

标签 javascript node.js puppeteer

所以我在点击耐克网站上的登录按钮时遇到了麻烦..
我不确定为什么它一直崩溃,因为它找不到我猜的选择器,但我不确定我做错了什么。
我还想说在 puppeteer 崩溃之前我有某种内存泄漏,如果我不及时取消控制台内的进程,有时它甚至会使我的 macbook 完全崩溃。
编辑:
如果我没有足够快地取消应用程序,此代码还会在崩溃时导致内存泄漏,迫使我不得不硬重置我的 mac。
Node 版本: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)
})()
我也试过:
await page.click('button[data-var]="loginBtn"');

最佳答案

试试看:

await page.click('button[data-var="loginBtn"]');

关于javascript - 使用 Puppeteer 单击选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63782986/

相关文章:

javascript - 加速这个(基本的)node.js 服务器

javascript - 使用 AngularJS 时,我应该在 $apply 和 $watch 之间使用哪个?

javascript - 如何以正确的方式捕获异常? [初学者]

node.js - 无法将异步函数部署到 Google Cloud Functions

javascript - 如何在 stenciljs E2E 测试中移除焦点

javascript - 无法在 jQuery 中调用按钮作为事件处理程序

javascript - Coffeescript json响应处理

node.js - Node JS & Socket.io 建议 - 通过路由还是通过套接字将信息发布到数据库更好?

puppeteer - 我找不到稳定 chrome 的 chromium 构建版本

electron - 以编程方式控制 Chromium 实例的最可靠方法是什么?