node.js - 如何在继续之前等待计划的作业终止?
问题描述
我正在尝试使用 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();
};
解决方案
仅当您希望计划的作业运行时才打开浏览器怎么样?
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();
});
};
推荐阅读
- python - 多次拆分字符串并将结果作为新的DataFrame返回
- css - 使用css单击按钮时左右滑动
- javascript - 每 x 秒重复一个函数
- git - 从 Pycharm 删除后如何恢复已删除的分支
- r - 从refund R包中的拟合pfr对象中提取系数函数
- angular - 类型'employee []上不存在属性'emp' - Angular 6 ng serve --prod
- apache-spark - 了解 Spark 如何将输入文件转换为工作节点
- lambda - 使用 Lambda 函数来使用供应商提供的所有对象
- java - 在这里了解多态性
- webpack - 如何在 webpack 中合理使用 process.env 变量