在使用Puppeteer的async / await中使用setInterval

时间:2018-06-08 11:46:18

标签: node.js async-await puppeteer

有人可以回答我,如何在 page.evaluate 方法中使用setInterval

我需要获取一些动态数据,并将其写入每个500ms的文件中 http://tinyimg.io/i/QjusF8x.png

(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://url.com');

// Auth
await page.click(selector.login.tab);
await page.click(selector.login.email);
await page.keyboard.type(settings.username);
await page.click(selector.login.password);
await page.keyboard.type(settings.password);
await page.click(selector.login.button);

// Waiting for loading
await page.waitFor(10000); // TO FIX: there we should wait for loaded element or selector
await page.evaluate(() => {
        setInterval(() => {
            console.log(document.querySelector('div._captions > p._value').innerText + document.querySelector('div._captions p._hl-value').innerText);
        }, 500);
    });

//await page.screenshot({path: 'screenshot.jpg'});
await browser.close();})();

1 个答案:

答案 0 :(得分:0)

你需要像这样使用js方法Promise():

translatesAutoresizingMaskIntoConstraints
如果您需要完成超时,可以使用方法resolve();