Кукловод: page.evaluate () возвращает пустой объект вместо строки даты ISO - PullRequest
1 голос
/ 12 июля 2020

Согласно документам Puppeteer , page.evaluate() возвращает несериализуемое значение. Они ссылаются на MDN документы , где объясняется, что 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();
})();

Я что-то упустил?

1 Ответ

1 голос
/ 12 июля 2020

new Date () создает новый объект даты. Если вы хотите использовать строку даты ISO,

new Date().toISOString()
...