首页 > 解决方案 > 如何在继续之前等待计划的作业终止?

问题描述

我正在尝试使用 puppeteer 自动化注册过程。我创建了myFunc它将在每天注册开始前几分钟被调用,因此我可以有时间登录并转到特定网页。然后,嵌套scheduleJob用于在可用时单击按钮。

我的问题是浏览器在触发此作业之前已关闭。无论如何在关闭浏览器之前等待预定的工作?我曾尝试await在作业前添加,然后放入browser.close();其中scheduleJob但徒劳无功。

const myFunc = async (arg_1, arg_2, rule_arg) => {
  let browser = await puppeteer.launch({
    headless: false
  });
  
  const page = await browser.newPage();
  await page.goto(url);
  
  // some code here to login and go to a specific page

  schedule.scheduleJob(rule_arg, function(){
    page.click('button[id="btnID"]');
  });

  browser.close();
};

标签: node.jsasync-awaitscheduled-taskspuppeteer

解决方案


仅当您希望计划的作业运行时才打开浏览器怎么样?

const myFunc = async (arg_1, arg_2, rule_arg) => {
  schedule.scheduleJob(rule_arg, function(){
    let browser = await puppeteer.launch({
      headless: false
    });
    
    const page = await browser.newPage();
    await page.goto(url);
    
    // some code here to login and go to a specific page

    page.click('button[id="btnID"]');

    browser.close();
  });
};

推荐阅读