我有一个重复的功能,我想使用NightmareJs自动执行。在这种情况下,任务是打开google.com并在搜索栏上输入搜索文本。网站地址和要搜索的文本均来自JSON文件,这是我在全局范围内所需的。但是一旦启动.then()实例,就无法从全局范围访问数据。如何在.then()实例下从全局范围访问数据?
到目前为止,我已经创建了一个Nightmare实例,其外观如下:
NightmareJs代码:
var Nightmare = require('nightmare');
var nightmare = Nightmare({
show:true
});
var dummy = require('./dummy.json')
nightmare
.goto(dummy[0].searchOn)
.evaluate(()=>{
return document.querySelector('html').innerHTML
})
.then(()=>{
return nightmare
.insert('.gLFyf',dummy[0].searchText)
})
JSON代码:
[
{
"searchOn": "https://www.google.com",
"searchText": "I love google"
}
]
我希望能够从Google搜索栏上的JSON文件中插入搜索文本(在searchText下)。请指教。谢谢
PS:是的,我确实知道,可以通过如下方式更改.insert()的位置来完成此操作:
nightmare
.goto(dummy[0].searchOn)
.insert('.gLFyf', dummy[0].searchText)
.then()
但是我想知道如何做,以备将来参考,因为我之前几次遇到过这个问题。