casperjs empy在提交大值时发布POST数据

时间:2016-10-28 08:07:11

标签: node.js phantomjs casperjs

我有一个已加载的表单,我只需提交表单。在表单中有input type = hidden字段,其中存储了一些长字符串。这在常规浏览器上工作正常,不适用于casper。在分析这一点时,apache本身从casper获取空的POST数据。如果我减少隐藏输入的数据,它可以正常工作。是否存在尺寸限制或在casper中定义的内容?

以下是代码:

var casper = require('casper').create();

casper.start('http://localhost/loadForm', function() {
   // Wait for the page to be loaded
   this.waitForSelector('form[action="/saveConfig"]');
});

casper.then(function() {
    this.evaluate(function() {
        $('#form').submit();
    });
});

casper.run();

1 个答案:

答案 0 :(得分:1)

以下错误报告对我有所帮助。我认为这是一个幻影错误。其中一个隐藏的字段是存储base64 png图像,在我的html页面中,它由canvas.toDataURL(“image / png”)填充。与实际的浏览器相比,这在casperjs中产生了不同的base64。这导致$ _POST在php中为空。但是当我尝试使用file_get_contents(“php:// input”)时,数据全部存在。我使用canvas.toDataURL(“image / png”,0)解决了它。第二个参数在browers和casperjs中产生一致的输出。

https://github.com/ariya/phantomjs/issues/10455