Подтвердить что ты не робот

Chrome Dev Tools API & Selenium WebDriver

Я экспериментирую с Selenium Web Driver для автоматизации моих тестов интеграции с браузером. Я вижу, что Chrome Dev Tools поставляется с консольным API для вызова определенных функций инструмента dev изнутри JavaScript.

В идеале, изнутри теста интеграции Java/JUnit я могу запустить профилировщик памяти Chrome Dev Tool (и, возможно, некоторые другие инструменты), запустить тесты WebDriver (создание экземпляра браузера Chrome, управление элементами DOM и т.д.), а затем остановите профайлер, затем проверьте результаты профилировщика, чтобы увидеть, есть ли утечки памяти.

Является ли это понятие даже выполнимым или я выхожу на обед? Почему/почему нет?

Кажется, что API уже имеет console.profile(), чтобы начать сеанс профилирования и console.profileEnd(). Поэтому теоретически я мог бы заставить WebDriver вызывать эти два метода и запускать тесты между ними.

Я думаю, что недостающее звено затем программно взаимодействует с результатами сеанса профилирования...

4b9b3361

Ответ 1

Фактически вы можете использовать протокол отладчика, как упомянуто выше @loislo - вы можете найти более полезным ссылку https://developer.chrome.com/devtools/docs/debugger-protocol

Просто добавьте флаг при открытии Chrome и удалите его отладку!:)

Ответ 2

Chrome DevTools состоит из двух частей: интерфейс с интерфейсом и внутренним интерфейсом в собственном коде рендеринга. Эти части работают друг с другом по протоколу. Протокол описан в файле protocol.js

Chrome может работать в режиме удаленной отладки, когда он предоставляет сокет tcp, который можно использовать для взаимодействия с внутренней частью DevTools. Эта функция активно используется в браузере Chrome Набор инструментов телеметрии

Этот набор инструментов был написан на python, и мы держим его в синхронизации с текущей версией протокола. Набор инструментов имеет код для работающий с частью профилей кучи и другими частями DevTools.