casperjs并通过iframe和javaScript下载文件[英] CasperJS and downloading a file via iFrame and JavaScript

问题描述

我有一个脚本可以测试 - 单击 - 生成一个下载文件的iframe.我如何用casperjs拦截响应?

我已经尝试了序列:

casper.click('element');
casper.withFrame('frame', function(){
    console.log(this.getCurrentUrl()); // only return about:blank, but should have URL
    console.log("content: " + this.getHTML()); // Yep, empty HMTL

    this.on('resource.received', function(resource){
        console.log(resource.url); // never executed
    });
});

我需要文件的内容,但不能在不单击元素或更改要测试的脚本的情况下真正产生URL.

想法?

推荐答案

我尝试了其他事件,但是通过iframe下载时没有射击.我找到了另一种有效的解决方案 - 但是如果您有更好的东西,我想尝试一下.

这里来了:

// Check downloaded File
.then(function(){

    // Fetch URL via internals
    var url = this.evaluate(function(){
        return $('__saveReportFrame').src; // JavaScript function in the page
    });

    var file = fs.absolute('plaintext.txt');
    this.download(url, file);

    var fileString = fs.read(file);

    // Whatever test you want to make
    test.assert(fileString.match(/STRING/g) !== null, 'Downloaded File is good');
})

本文地址:https://www.itbaoku.cn/post/1740032.html