- 保存图像文件这是远程Web服务器,并
- 上传到另一台服务器
在量角器测试中。
// depend on a external module
var fs = require('fs');
// save remote file(url) to local(dest)
var download = function (url, dest) {
// let this function be async
browser.executeAsyncScript(function (url, dest, done) {
var file = fs.createWriteStream(dest);
var request = http.get(url, function (response) {
response.pipe(file);
file.on('finish', function() {
file.close(done);
});
});
}, url, dest);
};
describe('', function() {
it('', function() {
browser.get('http://...');
download('http://.../foo.jpg', 'foo.jpg'); /*** DOESN'T WORK! ***/
var absolutePath = path.resolve(__dirname, 'foo.jpg');
$('input[type=file]').sendKeys(absolutePath);
$('#uploadButton').click();
...
但这不起作用:
Stacktrace:
UnknownError: javascript error: fs is not defined
当我把var fs = require('fs');
在download
功能,该错误信息是如下:
Stacktrace:
UnknownError: javascript error: require is not defined
走出放在这里肢体但量角器测试在浏览器中运行?或在节点?因为如果他们在浏览器中运行,那么这将解释为什么“require”不起作用。 – Jackson 2014-12-02 08:59:48
@Jackson来自[量角器github页面]的引用(https://github.com/angular/protractor#protractor-): 'Protractor是AngularJS应用程序的端到端测试框架。量角器是建立在WebDriverJS之上的Node.js程序。' – nilsK 2014-12-02 14:11:15
@weed也许你需要从另一个目录需要你的文件,例如:'var fs = require('../ fs');' - 取决于你的项目设置。 – nilsK 2014-12-02 14:12:14