Проверьте, есть ли на странице неработающие JS/CSS включения.

Когда я перемещаю библиотеки (файлы JS/CSS) в проекте со многими HTML-страницами для лучшей организации, часто страницы, которые зависят от этих недавно перемещенных библиотек, ломаются, если я вручную не обновлю в них пути к файлам.

Есть ли способ автоматически протестировать страницу, запустив безголовый браузер и выдать ошибку, если какой-либо включенный файл JS/CSS 404s? Я просмотрел CasperJS, PhantomJS и несколько других фреймворков для тестирования браузеров, но не смог найти то, что ищу.

Я знаю, что этот вопрос можно считать широким, но я полностью потерялся в этом вопросе и был бы признателен за любые указатели.


person vivekagr    schedule 18.04.2014    source источник
comment
Вероятно. В качестве альтернативы вы можете открыть Chrome и посмотреть вкладку сети и посмотреть, что такое 404.   -  person Jackson    schedule 19.04.2014
comment
Я делал то же самое некоторое время, но я хочу иметь возможность быстро повторить один и тот же тест на нескольких страницах (50+).   -  person vivekagr    schedule 19.04.2014
comment
В файле readme для PhantomJS сказано: Мониторинг сети. Автоматизируйте анализ производительности, отслеживайте загрузку страниц и экспортируйте в стандартный формат HAR.   -  person Jackson    schedule 19.04.2014
comment
Раньше я использовал для этого PhantomJS (под руководством CasperJS), и он работает довольно хорошо.   -  person Palpatim    schedule 19.04.2014
comment
@Jackson Именно то, что я искал. Спасибо! :) Хотели бы вы опубликовать это как ответ, чтобы я мог принять?   -  person vivekagr    schedule 19.04.2014


Ответы (1)


Очевидно, PhantomJS предлагает мониторинг сети.

Пример (netlog.js):

var page = require('webpage').create(),
    system = require('system'),
    address;

if (system.args.length === 1) {
    console.log('Usage: netlog.js <some URL>');
    phantom.exit(1);
} else {
    address = system.args[1];

    page.onResourceRequested = function (req) {
        console.log('requested: ' + JSON.stringify(req, undefined, 4));
    };

    page.onResourceReceived = function (res) {
        console.log('received: ' + JSON.stringify(res, undefined, 4));
    };

    page.open(address, function (status) {
        if (status !== 'success') {
            console.log('FAIL to load the address');
        }
        phantom.exit();
    });
}

Установите phantomjs и поместите его на свой путь. Сохраните приведенный выше код как «netlog.js» и из командной строки перейдите в папку, содержащую netlog.js, и выполните команду phantomjs netlog.js "http://www.example.com".

person Jackson    schedule 19.04.2014