【问题标题】:Puppeteer: page.evaluate() returns empty object instead ISO date stringPuppeteer:page.evaluate() 返回空对象而不是 ISO 日期字符串
【发布时间】:2020-07-12 09:57:03
【问题描述】:

根据Puppeteer docspage.evaluate() 返回一个不可序列化的值。它们链接到 MDN docs,其中解释了 JSON.stringify() 转换或不转换的内容。

我正在尝试获取 Date 值(作为 ISO 字符串),但返回的是空对象。 MDN 文档对Date 对象进行了以下说明:

Date 的实例通过返回一个字符串来实现toJSON() 函数(与date.toISOString() 相同)。因此,它们被视为字符串。

这里有一个例子来重现它:

const puppeteer = require('puppeteer'); // v5.0.0

(async () => {
    const browser = await puppeteer.launch({devtools: true});
    const page = await browser.newPage();
    await page.goto('about:blank');

    let date = await page.evaluate(() => {
        return new Date();
    });

    // Expected an ISO date string but empty object returned 
    console.log(date); // Output: {}

    await browser.close();
})();

我错过了什么吗?

【问题讨论】:

标签: javascript date puppeteer


【解决方案1】:

new Date() 创建一个新的日期对象。如果您想要 ISO 日期字符串,请使用以下内容,

new Date().toISOString()

【讨论】:

    猜你喜欢
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2011-07-29
    • 2012-11-26
    • 1970-01-01
    相关资源
    最近更新 更多