如何通过普通的Javascript而不是通过UI使用CasperJS进行文件POST

Phy*_*ysX 4 upload multipart phantomjs casperjs

我无法弄清楚如何做到以下几点:

在运行我的测试之前,我想将(multipart)文件发布到服务器.我们的后端为这些上传创建内容配置文件,然后可以通过UI访问.这是我需要运行测试的内容配置文件.

我知道.fill()功能,但这不适用,因为我不想通过UI进行文件上传.有什么方法可以通过CasperJS或javascript实现,或者任何人都可以指向我可能帮助我的文档?

Sin*_*ina 7

据我读过casperjs和phantomjs的文件,不允许直接提交文件.您可以使用如下的卷曲:

curl http://some.testserver.com/post.php \
   -F file_input=@/path/to/my/file.txt \
   -F "text_field=Some Text Here" \
   -F some_number=1234
Run Code Online (Sandbox Code Playgroud)

但是,您可以在casperjs上打开POST请求:

casper.start();

casper.open('http://some.testserver.com/post.php', {
    method: 'post',
    data:   {
        'title': 'Plop',
        'body':  'Wow.'
    },
    headers: {
        'Content-type': 'multipart/form-data'
    }
});

casper.then(function() {
    this.echo('POSTED it.');
});

casper.run();
Run Code Online (Sandbox Code Playgroud)

以下是相关文档:

http://docs.casperjs.org/en/latest/modules/casper.html#open