Журнал ошибок браузера

0

Я хочу убедиться, что мое угловое приложение не регистрирует никаких ошибок в консоли при загрузке страницы, на которой находится приложение.

Для этого я использую транспортир, и до сих пор у меня есть следующее испытание:

spec.js:

describe('Protractor Demo App', function () {


    it('should show all logs', function () {

        browser.get('http://localhost:9050/#/10');

        browser.sleep(20000)

        browser.manage().logs().get('browser').then(function (browserLogs) {

            console.log(browserLogs)

            browserLogs.forEach(function (log) {
                console.log("-------------------");
                console.log(log.message);
                if (log.level.value > 900) {
                    throw log.message;
                }
            });
        });


    });
});

conf.js:

exports.config = {
    framework: 'jasmine2',
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: ['spec.js'],
    jasmineNodeOpts: {
        // If true, display spec names.
        isVerbose: true,
        // If true, print colors to the terminal.
        showColors: true,
        // If true, include stack traces in failures.
        includeStackTrace: true,
        // Default time to wait in ms before a test fails.
        defaultTimeoutInterval: 30000
    },

    capabilities: {
        'browserName': 'chrome',
        'loggingPrefs' : {"driver": "ALL", "server": "ALL", "browser": "ALL"}
    },


};

когда я смотрю на вывод терминала, я получаю только первый элемент журналов. Однако, если я открываю консоль в хроме и сам просматриваю журналы, есть больше журналов ошибок и предупреждений, но они не являются частью вывода терминала. Как это возможно, что я пропустил?

  • 0
    Какие уровни логов вы получаете в chrome? попробуйте изменить уровень журнала до 800 - if (log.level.value >= 800) как большинство уровней журнала - 800 или 900
  • 0
    Странно, у меня нормально работает ваш код, вы можете попробовать console.log(JSON.stringify(log)) ?
Показать ещё 3 комментария
Теги:
testing
protractor

1 ответ

3
Лучший ответ

Я столкнулся с той же проблемой, ошибки консоли, о которых сообщает транспортир, были не такими же, как ошибки, которые я видел при открытии страницы в браузере вручную. Вот как я решил свою проблему, я использовал метод navigate() вместо get(). Они должны быть одинаковыми, но, по крайней мере, в моем случае они создают разные результаты в консоли браузера.

describe('Protractor Demo App', function () {

    it('should show all logs', function () {
        browser.get('http://localhost:9050/#/10');

        // Clear console log
        browser.manage().logs().get('browser');

        // Load the page again, now with the navigate() method
        browser.navigate().to('http://localhost:9050/#/10');

        browser.manage().logs().get('browser').then(function (browserLogs) {

            console.log(browserLogs);

            browserLogs.forEach(function (log) {
                console.log("-------------------");
                console.log(log.message);
                if (log.level.value > 900) {
                    throw log.message;
                }
            });
        });
    });
});
  • 0
    у меня навигация () работает. Большое спасибо.
  • 0
    Это помогает только тогда, когда ошибка возникает во время загрузки страницы. Что если это произойдет после множества действий на самой странице?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню