Как сделать снимок экрана с помощью локального браузера (FF) и записать в файл во внутреннем javascript

Я использую внутреннюю структуру для функционального тестирования и локального запуска браузера (Firefox). Есть ли способ сделать снимок экрана и записать его в файл? Я попробовал следующий пример ниже (ответ на похожие вопросы на этом сайте), но я получаю следующую ошибку «Ошибка типа: у объекта «PNG нет метода« замены ». Я новичок в этой внутренней структуре и javascript.

Спасибо.

Вот что у меня есть и типичные ответы, которые я вижу:

define(
    [
        'intern!object',
        'intern/chai!assert',
        'intern/dojo/node!fs'
    ],
    function (registerSuite, assert, fs) {
        registerSuite(
            {
                name: 'basict',

                'screencap': function () {

                    var remote = this.remote;
                    var workflowUrl = "https://google.com/";

                    return remote
                        .setImplicitWaitTimeout(40000)
                        .get(workflowUrl)
                        .takeScreenshot()
                        .then(function(data) {
                            var base64Data = data.replace(/^data:image\/png;base64,/,"");
                            fs.writeFileSync("/tmp/myCapture.png", base64Data, 'base64');
                        })
                        .end()
                }
            }
        );
    }
    );

person bkuhl    schedule 31.10.2014    source источник


Ответы (1)


Не уверен, почему вы выполняете замену строки, вместо этого попробуйте

fs.writeFileSync("/tmp/myCapture.png", data, 'base64');

работает на меня

person lebod    schedule 02.11.2014
comment
Да, это сделало это. Отлично. Не уверен, почему у кого-то это было в их ответе. Я мог бы поклясться, что попробовал твой ответ перед отъездом в пятницу. - person bkuhl; 03.11.2014