Как получить console.trace () из веб-драйвера Chrome с селеном? - PullRequest
0 голосов
/ 31 августа 2018

Я работаю над некоторой исследовательской проблемой, которая требует от меня получения точной трассировки стека, когда определенный JavaScript изменяет дерево DOM.

Мне удалось добиться удовлетворительного результата, используя MutationObserver в сочетании с API console.trace (пример кода показан ниже) в браузере Chrome, но когда я попытался автоматизировать этот процесс с помощью веб-драйвера selenium, извлеченный журнал не содержит никакой информации о трассировке стека. .

var callback = function(mutationsList) {
    mutationsList.forEach(function (mutation) {
        switch(mutation.type) {
            case "attributes":
                var rect = mutation.target.getBoundingClientRect();
                console.log(JSON.stringify(rect));
                console.trace();
                break;
        }
    });
};

new MutationObserver(callback).observe(node, {
    attributes: true,
    childList: true
});

Я также пытался заменить API console.trace () на Error.stack, но в обратном вызове, определенном MutationObserver, выходная трассировка стека полностью отличается от генерируемой console.trace ().

Есть ли какой-нибудь правильный способ получить правильную трассировку стека от хрома к селему?

...