如何保存'测试'的内容?对象打开后? 例如:
module.exports = {
'Page title is correct': function (test) {
test
.open('http://google.com')
// save content of test the HTML DOM
.assert.title().is('Google', 'It has title')
.done();
}
};
或者可能与phantomJS直接互动 有可能的?
答案 0 :(得分:1)
即使DalekJS的主要目的不是做这样的事情,技术上也可以这样做:
module.exports = {
'Can store html': function (test) {
test.open('http://google.com')
.execute(function () {
this.data('htmlData', window.document.getElementsByTagName('html')[0].outerHTML);
})
.log.message(function () {
var data = test.data('htmlData');
var fs = require('fs');
fs.writeFileSync('nameOfTheFile.html', data);
return data;
})
.assert.title().is('Google', 'It has title')
.done();
}
};
我们使用execute
方法&使用data('key', 'value')
存储方法将其传输到节点。
我们稍后在我们在节点上下文中运行的log.message
方法中访问此数据。这使我们能够加载FileSystem
模块&最后将捕获的html存储到文件中。