我正在使用 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()
}
但是文件读取指令是在我启动脚本时立即执行的,而不是等待网络抓取完成。
在 javascript 中,我想我需要使用回调函数来防止这种情况发生,但是有没有更好的方法来使用 Chromeless 来做到这一点?
最佳答案
您可以尝试将 implicitWait: true
传递给 Chromeless
构造函数。此值默认为 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()
}
关于javascript - Chromeless - 在执行指令之前等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48219238/