Chromeless - 在执行指令之前等待

Sul*_*lli 6 javascript automation callback chromeless

我使用Chromeless检索网站上的一条信息并加载相应的文件:

async function run() {
  const chromeless = new Chromeless()

      const screenshot = await chromeless
        .goto('http://www.website.com')
         title = await chromeless.inputValue('input[name="title"]')

         var fs = require('fs');
         var data = fs.readFileSync(title,"utf8");
         ...
    await chromeless.end()
}
Run Code Online (Sandbox Code Playgroud)

但是当我启动脚本时,文件读取指令会立即执行,而不是等待Web爬行完成.

在javascript中,我认为我需要使用回调函数来防止这种情况,但有没有更好的方法来使用Chromeless?

gri*_*edj 3

您可以尝试传递implicitWait: trueChromeless构造函数。该值是false默认值。设置此选项true将使 Chromeless 在执行命令之前等待元素存在。

换句话说,在分配var fs = require('fs');之前不应执行 。const title

async function run() {
  const chromeless = new Chromeless({implicitWait: true})
  const screenshot = await chromeless.goto('http://www.website.com')
  const title = await chromeless.inputValue('input[name="title"]')

  var fs = require('fs');
  var data = fs.readFileSync(title,"utf8");
  ...
  await chromeless.end()
}
Run Code Online (Sandbox Code Playgroud)