Javascript 使用CasperJS提交表单并下载文件

Javascript 使用CasperJS提交表单并下载文件,javascript,casperjs,Javascript,Casperjs,注意,我已经查看了以下链接: 我认为他们是完美的,我试图完成,但我的努力一直没有结果 我正试图通过CasperJS将mp3下载到我的文件系统中,我一直试图通过CasperJS实现这一点 这是我的密码: var casper = require('casper').create({verbose: true , logLevel: "debug" }); var fs = require('fs'); casper.start('http://www.video2mp3.de/'); casp

注意,我已经查看了以下链接:

我认为他们是完美的,我试图完成,但我的努力一直没有结果

我正试图通过CasperJS将mp3下载到我的文件系统中,我一直试图通过CasperJS实现这一点

这是我的密码:

var casper = require('casper').create({verbose: true , logLevel: "debug" });
var fs = require('fs');
casper.start('http://www.video2mp3.de/');
casper.waitForSelector("#converter > form");
casper.fill('#converter > form', { video: 'https://www.youtube.com/watch?v=VoaUYcwEpSw' }, true);
casper.waitForSelector("#file");
var url = casper.getElementAttribute('#file','href');
var mp3 = fs.absolute("unstoppable.mp3");
casper.then(function() { this.download(url, mp3); });
casper.run();
我想我有点天真,以为事情会这么简单,但我找不到我的错误。调试器的作用不大。我一直在用终端中的以下命令运行我的文件:

casperjs--web安全性=无sample.js


任何帮助都将不胜感激。

回答:

通过使用屏幕截图调试代码,我成功地使其正常工作。如果有人感兴趣,以下是最终结果:

var casper = require('casper').create({verbose: true , logLevel: "debug" });
var fs = require('fs');
var url = "https://www.youtube2mp3.cc/"
casper.start(url);
casper.then(function(){
    this.fill('#converter > form', { 'video': 'https://www.youtube.com/watch?v=VoaUYcwEpSw' }, true);
});
casper.wait(2000);//this is probably what I was missing, 
                //a screen capture showed that I wasn't waiting long enough
casper.then(function(){
    this.waitForSelector("#file", function(){
        var url = casper.getElementAttribute('#file','href');
        var mp3 = fs.absolute("unstoppable.mp3");
        casper.then(function() { this.download( url, mp3); });
    });
});
casper.run();
下载的文件将位于脚本所在的任何位置。 我正在使用:

  • CasperJS 1.1.2
  • 幻影JS 2.1.1
在MacOSX El Capitan 10.11.6(15G1108)上运行