如何使用JavaScript从浏览器控制台批量下载文件?

时间:2015-07-07 11:22:27

标签: javascript download console automation

我没有网络编程经验,所以我的问题很简单。我想通过填写网页中的表单来下载大量文件。网页的扩展名为.aspx,我只对一个字段和一个按钮感兴趣。通过浏览器中的控制台搞错,我发现执行:

document.getElementById('TxtRegNo').value = 'blahblah`;

将填补相关领域。还做了

__doPostBack("ImageButton1","Click");

将下载与.pdf相对应的blahblah文件。需要输入的实际值是PAG-1200到PAG-1900之类的序列。我尝试使用for循环,如下所示:

for (var i = 21618; i < 21621; i++) 
{
document.getElementById('TxtRegNo').value = 'B14-' + i;
__doPostBack("ImageButton1","Click");
}

但它没有按预期工作。只下载了最后一个文档,我在控制台中得到了这个:

enter image description here

如果在FireFox的控制台中运行时没有出现此错误,我仍然只能运行一个文件。谁能告诉我怎么做?

1 个答案:

答案 0 :(得分:0)

试试这个:

  1. 通过控制台将jQuery注入页面,如下所述:Include jQuery in the JavaScript Console
  2. 在for循环克隆表单中,根据需要设置值并提交表单jQuery('form').clone().find('#TxtRegNo').val('blah').parent('form').submit();
  3. 如果页面包含多个表单,则应指定该表单。 'form'就像css选择器一样。这将在页面上找到所有表单。如有必要,只需使用'#elementId''.elementsClassName'更具体。

    也许您还需要更改表单的名称(以便能够模拟地提交表单)。我没有尝试过,这只是猜测。

    如果您想将代码拆分为多行,您也可以这样做:

    var myFormClone = jQuery('form').clone();
    myFormClone.find('#TxtRegNo').val('blah');
    myFormClone.attr('name', 'uniquename_' + iterationVariableOfForLoop);
    myFormClone.submit();
    

    如果提交失效,请尝试:

    myFormClone.get(0).submit();
    
    祝你好运!