我想在 Nightmare 中使用script.js
时从加载的.evaluate()
中获取值。因此,假设某些网站上有此基本html ...
<!doctype html>
<head>
<title> far-away-website.com</title>
<script src="script.js"></script>
<script src="script-two.js"></script>
</head>
<body>
<div> DOM stuff</div>
</body>
</html>
而且
script.js
拥有这个...func.prototype.hasData = function() {
return this.data
}
如何在Nightmarejs中从
this.data
中获取.evaluate()
的值?...var Nightmare = require('nightmare');
var nightmare = Nightmare({
// waitTimeout: 60000, // in ms
openDevTools: {
//mode: 'detach'
},
show: true
})
nightmare.goto('https://www.far-away-website.com')
.evaluate(() => {
return this.data // needed from script.js
})
.then((data) => {
console.log(data)
})
P.S. chromet工具中的
this.data
可以显示watch
的值。
最佳答案
以下代码仅显示this
仅引用该对象。如果该对象在全局窗口中,则可以通过创建对象并使用.hasData()
函数属性来访问它。
否则,您将无法访问this.data
,因为它处于不同的功能范围内。您可以阅读一些 Material ,以了解更多有关如何利用它的信息。
另外,您没有共享一个真正有效的网站/代码,没有它就无法提供太多帮助。
进一步了解here和here。
阅读更多关于范围here的信息。
关于javascript - 在 Nightmare 中获取加载的SCRIPT变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47139385/