在重定向之后做事之前等待 - Puppeteer Node.js

Wait before doing stuff after a redirection - Puppeteer Node.js

我正在尝试使用 Puppeteer 和 Node js 制作脚本,post 从我电脑上的文本文件和图片在网站(如 ebay 或 gumtree)上投放广告

我已经完成了登录、填写表格和上传图片的所有操作,但是在提交表格后我无法进行任何操作(我必须选中一个框并单击验证)

错误日志显示没有找到选择器 newadSubmit、accept_rule 和 lbc_submit

的节点
 var promise1 = new Promise(function(resolve, reject) {
   setTimeout(function() {

    upload(getInfo(absolutePath, "#titre"), workingPath + "1.jpg", 
    workingPath + "2.jpg", 
    workingPath + "3.jpg", 
    getInfo(absolutePath, "#prix"), 
    getInfo(absolutePath, "#desc"), 
    getInfo(absolutePath, "#cp"), 
    1, 
    getInfo(absolutePath, "#num"));
}, 300);});



promise1.then(function(value) {
  page.click('#newadSubmit');
  page.waitForSelector('#accept_rule');
  page.click('#accept_rule');
  page.click('#lbc_submit');});

此外,错误甚至在 upload() 函数完成之前就出现了

您应该像下面这样在 puppeteer 中对异步任务使用 await 关键字。

await page.waitForSelector("#accpt_rule")

而且我也没有看到任何调用 resolve 或 reject 的代码。

promise需要在上传完成后妥善解决或拒绝。

await 不允许用作顶级关键字,必须放在异步函数中。
更改为异步函数也将使承诺可能只处理一次,在调用异步函数的地方;其中,有一个例子如下:

async function foo () {
  await page.somepuppeterfunct();
}

foo((x) => { //Here is used to store the output of the async funct
   x...Handle expected output //This can be an 
});