准备用 nightmare 写自动化测试. 遇到了一个解决不了的问题, 多方查找无果,尝试来 node 社区咨询下: 一个待测试的页面的 window 对象挂了一个方法,方法被调用会改变页面,并返回一个对象. 需求是, 用 nightmare 调用一次这个方法,然后截一次图. 我的实现代码如下:
var Nightmare = require('nightmare'),
nightmare = Nightmare();
nightmare.goto('http://127.0.0.1/demo');
nightmare
.wait(5000)
.run(function(){
nightmare.evaluate(function(){
return window.a.playNextFrame({toggle: true, pId: null})
})
.then(function(result){
console.log(result)
nightmare.screenshot('/test.png')
.end()
})
})
但是代码运行结果是: 只输出了 result, 并没有生成截图文件 但是按照这种方式,却可以正常生成图片,并打印标题:
nightmare.goto('http://127.0.0.1/demo')
.wait(5000)
.screenshot('/test.png')
.evaluate(function(){
return document.title;
})
.end()
.then(function(title){
console.log(title);
})
请教各位,问题出在哪里? 先谢过了