Как использовать протокол удаленной отладки Google Chrome в HTTP?

Я сослался на http://code.google.com/chrome/devtools/docs/remote-debugging.html.

Во-первых, я начал новый процесс Chrome.

chrome --remote-debugging-port=9222 --user-data-dir=remote-profile

Затем я хочу попробовать некоторые варианты, написанные на http://code.google.com/intl/ja/chrome/devtools/docs/protocol/tot/index.html, но как их использовать? Я уже знаю, как использовать эти методы в WebSocket, но мне нужно использовать их в HTTP.

Я попробовал этот код nodejs, но потерпел неудачу.

var http = require('http');

var options = {
  host: 'localhost',
  port: 9222,
  path: '/devtools/page/0',
  method: 'POST'
};

var req = http.request(options, function (res) {
  console.log(res.headers);
  res.on('data', function (chunk) {
    console.log(chunk);
  });
});

req.on('error', function (e) { console.log('problem' + e.message); });
req.write(JSON.stringify({
  'id': 1,
  'method': "Page.enable"
}));
req.end();

Это неправильно?


person ajalab    schedule 21.10.2011    source источник


Ответы (3)


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

Существует модуль npm под названием chrome-remote-interface, который значительно упрощает использование Chrome Remote Debugging API: https://github.com/cyrus-and/chrome-remote-interface

npm install chrome-remote-interface

Затем вы можете использовать модуль в своем коде следующим образом:

    var Chrome = require('chrome-remote-interface');
    Chrome(function (chrome) {
        with (chrome) {
            on('Network.requestWillBeSent', function (message) {
                console.log(message.request.url);
            });
            on('Page.loadEventFired', close);
            Network.enable();
            Page.enable();
            Page.navigate({'url': 'https://github.com'});
        }
    }).on('error', function () {
        console.error('Cannot connect to Chrome');
    });
person nwinkler    schedule 07.01.2014
comment
есть ли способ сохранить message.request.url в переменной? - person human; 13.12.2017

Я думаю, что он говорит: «Обратите внимание, что в настоящее время мы работаем над раскрытием протокола на основе HTTP, который не требует реализации клиентского WebSocket».

Я не уверен, что это означает, что теперь вы можете использовать HTTP вместо WebSocket.

person beefeather    schedule 22.10.2011

Существует также фантастический модуль NPM под названием Weinre, который позволяет вам легко использовать инструменты отладки/удаленной отладки Chrome. Если вам также нужно протестировать кросс-браузер, вы можете использовать инструменты Chrome даже в определенных версиях IE. Есть дополнительная информация в блоге MSDN.

person user596944    schedule 24.01.2014