【问题标题】:JS file upload with PhantomJS/CasperJS使用 PhantomJS/CasperJS 上传 JS 文件
【发布时间】:2015-12-09 14:39:18
【问题描述】:

我正在尝试在 CasperJS 中自动上传图片。

site 上的表单似乎正在使用 plupload。单击按钮后,将出现一个文件浏览器对话框,可以在其中选择多个图像。

如何使用 CasperJS 处理此文件上传表单?是否可以一次上传多张图片?

【问题讨论】:

    标签: javascript forms file-upload phantomjs casperjs


    【解决方案1】:

    即使是自定义文件上传小部件也在其 UI 下方使用 <input type="file" ...> 元素。这对于访问客户端计算机上的文件是必要的。

    您可以通过直接设置需要上传的文件来绕过小部件 UI。由于 CasperJS 构建在 PhantomJS 之上,因此您可以使用所有 PhantomJS 功能,包括 page.uploadFile(selector, filename)。在你的情况下,看起来像这样:

    casper.page.uploadFile("#uploaders input[type='file']", myfilename);
    

    请注意,如果您事先知道文件输入元素名称并且文件输入字段位于表单元素内部,也可以使用所有 casper.fill*() 函数。

    【讨论】:

    • 感谢您回答@Artjom B.,但我想知道,如果文件图像以不同的路径分隔,......我们如何定义“myfilename”变量值?用逗号或其他东西分隔....? (看起来很奇怪)。
    • @gumuruh PhantomJS 好像不支持将多个文件上传到同一个元素,所以 CasperJS 不支持。我确信有一种解决方法,即复制单个文件输入的次数与要上传的文件一样多,并从所有文件中删除“多个”属性。如果您无法使其发挥作用,您可以提出问题。
    猜你喜欢
    • 2023-04-01
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 2016-05-22
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    相关资源
    最近更新 更多