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