是否有办法在Nightmare中访问.then()内部的全局变量

时间:2018-12-25 08:57:33

标签: javascript arrays node.js json nightmare

我有一个重复的功能,我想使用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()

但是我想知道如何做,以备将来参考,因为我之前几次遇到过这个问题。

0 个答案:

没有答案