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

标签 upload phantomjs multipart casperjs

我不知道如何执行以下操作:

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

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

最佳答案

据我阅读casperjs和phantomjs的文档,直接提交文件是不允许的。你可以像下面这样使用 curl:

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

但是,您可以在 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();

以下是相关文档:

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

关于upload - 如何使用 CasperJS 通过普通 Javascript 进行文件 POST,而不是通过 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17575247/

相关文章:

javascript - 为什么 Javascript 上传 block 大小会因浏览器而异?

php - 加载所有javascript后如何输出DOM?

java - 如何使用 Java 发出 multipart/form-data POST 请求?

angularjs - Spring-boot:所需的请求部分 'file' 不存在

node.js - 如何在 NodeJs 中为谷歌索引批量请求发送多部分/混合请求?

php - 每上传多张照片并将它们分配给数据库中的一个用户 ID

jquery - 加载外部 html 后返回

ubuntu - 如何解决 ubuntu 中 phantom js 的权限被拒绝错误?

javascript - 确认 phantom.js 中的警报窗口

php - 使用PHP脚本将上传的图像转换为PNG