我有一个已加载的表单,我只需提交表单即可。在表单中,输入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();

最佳答案

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

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

关于node.js - 提交大值时,casperjs empy POST数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40300710/

10-12 15:38