Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CasperJS:将图像上载到表单并处理_Javascript_Phantomjs_Casperjs - Fatal编程技术网

Javascript CasperJS:将图像上载到表单并处理

Javascript CasperJS:将图像上载到表单并处理,javascript,phantomjs,casperjs,Javascript,Phantomjs,Casperjs,我正在尝试使用CasperJS来自动使用免费的OCR表单 表格分为三个步骤: 上载图像,单击预览,加载新页面 现在调整窗口忽略,单击OCR,加载新页面 翻录生成的文本数据 当前CasperJS脚本: Casper正在加载,你可以假设我的路径是正确的 我当前的错误: TypeError:“null”不是评估“文档”的对象。querySelector“ocr-result”。innerText' 可能的问题 页面导航不正确 从未上载图像文件 调试的一个好方法是抛出 casper.then(funct

我正在尝试使用CasperJS来自动使用免费的OCR表单

表格分为三个步骤:

上载图像,单击预览,加载新页面 现在调整窗口忽略,单击OCR,加载新页面 翻录生成的文本数据 当前CasperJS脚本:

Casper正在加载,你可以假设我的路径是正确的

我当前的错误:

TypeError:“null”不是评估“文档”的对象。querySelector“ocr-result”。innerText'

可能的问题

页面导航不正确 从未上载图像文件
调试的一个好方法是抛出

casper.then(function () {
this.capture('wtfishappening.png', { top: 0, left:0,     width:1020, height:2050}); 
});
…在某个地方,这样你就能确切地知道你的测试结果。我猜您的文件没有被正确选择

试试这个

var fileName='<path to file>';
    x = require('casper').selectXPath;

casper.then(function(){
    this.test.info('selecting file to upload');
    this.evaluate(function(fileName) {__utils__.findOne('input[type="file"]').setAttribute('value',fileName)},{fileName:fileName});
    this.echo('Name='+this.evaluate(function() {return __utils__.findOne('input[type="file"]').getAttribute('name')}));
    this.echo('Value='+this.evaluate(function() {return __utils__.findOne('input[type="file"]').getAttribute('value')}));
    this.page.uploadFile('input[type="file"]',fileName);
}); 

我知道这是一个相当古老的问题,但对于任何遇到类似问题的人来说,希望这能有所帮助

在调用getReturnedText之前,一切看起来都应该正常工作

TypeError:“null”不是对象 'document.querySelector'ocr-result'.innerText'

我很确定错误是您试图选择的元素没有找到。这可能只是一个名称错误,或者上传的文件可能会使表单做出不同的反应。就像重定向到错误页面一样。前面的答案很好地说明了如何调试页面重定向到的内容/位置。了解发生了什么的另一个好方法是启用调试

var casper=require'casper'。创建{ 没错, 用户代理:“Mozilla/5.0 Windows NT 6.1;WOW64 AppleWebKit/537.36 KHTML,如Gecko Chrome/30.0.1599.101 Safari/537.36”, 日志级别:调试 };
var fileName='<path to file>';
    x = require('casper').selectXPath;

casper.then(function(){
    this.test.info('selecting file to upload');
    this.evaluate(function(fileName) {__utils__.findOne('input[type="file"]').setAttribute('value',fileName)},{fileName:fileName});
    this.echo('Name='+this.evaluate(function() {return __utils__.findOne('input[type="file"]').getAttribute('name')}));
    this.echo('Value='+this.evaluate(function() {return __utils__.findOne('input[type="file"]').getAttribute('value')}));
    this.page.uploadFile('input[type="file"]',fileName);
});