【问题标题】:Protractor e2e test case for downloading image fileProtractor e2e 下载图像文件的测试用例
【发布时间】:2015-02-07 07:35:33
【问题描述】:

我有一个 Web 服务,它在调用 /image.gif 时生成动态图像。 如何让量角器测试下载文件并对结果进行 MD5sum?

我查看了Protractor e2e test case for downloading pdf file,但它依赖于浏览器具有可供点击的下载链接。

没有托管此图片的页面。

【问题讨论】:

    标签: selenium-webdriver jasmine protractor


    【解决方案1】:

    我无法在我的 Windows 设置上下载图像,使用 Leo 的回答没有错误,但我发现以下内容允许我获取我可以“预期”的 base64 数据 uri。

    Convert an image into binary data in javascript

    it('Image is version1)', function() {     
        browser.ignoreSynchronization = true                                           
        browser.get(targetUrl);     
        return browser.executeScript(function() {
            var img = document.querySelector('img');
            var canvas = document.createElement('canvas');
            canvas.width = img.width;
            canvas.height = img.height;
            var ctx = canvas.getContext("2d");
            ctx.drawImage(img, 0, 0);
            var dataURL = canvas.toDataURL("image/png");
            return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
        }).then(function (data) {
            expect(data).toEqual(base64VersionOfVersion1);
        });
    });                                                      
    

    【讨论】:

    • 不错的解决方案。注意:我还没有在 Windows 上尝试过我的解决方案。
    【解决方案2】:

    你应该关注我的Chrome configuration on that pdf-question link

    然后,browser.get('/image.gif'); 应该触发下载,而不是单击某些内容。

    关注Stephen Baillie solution 或类似内容,等待下载完成。

    最后,对于 MD5 部分的 NodeJS 方面,您可以使用 execSync 或其他更花哨的东西,但 execSync 可以:

    var execSync = require('exec-sync');
    var md5sum = execSync('md5sum ' + pathToDownloadedFile).split(' ')[0]
    // e.g. md5sum //=> "c9b833c49ffc9d48a19d0bd858667188"
    

    【讨论】:

    • 我使用建议的浏览器功能设置了 conf.js 文件,同时尝试了 default_directory 的 *nix 样式路径和 windows 样式路径,尽管没有错误,但在该文件夹中没有创建任何文件,甚至是来自的 html其他测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多