#javascript #node.js #google-chrome-devtools
#javascript #node.js #google-chrome-devtools
Вопрос:
Я ссылался 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();
Это неправильно?
Ответ №1:
Я знаю, что это довольно старый вопрос, но я столкнулся с ним, когда пытался сделать что-то подобное.
Есть вызываемый модуль npm chrome-remote-interface
, который значительно упрощает использование API удаленной отладки Chrome: 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');
});
Комментарии:
1. есть ли какой-либо способ сохранить
message.request.url
в переменной?
Ответ №2:
Я думаю, что в нем говорится: «Обратите внимание, что в настоящее время мы работаем над предоставлением протокола на основе HTTP, который не требует реализации клиентского WebSocket».
Я не уверен, что это означает, что теперь вы можете использовать HTTP вместо WebSocket.
Ответ №3:
Существует также фантастический модуль NPM под названием Weinre, который позволяет вам легко использовать инструменты отладки / удаленной отладки Chrome. Если вам нужно также протестировать кросс-браузер, он позволяет вам использовать инструменты Chrome даже в определенных версиях IE. В блоге MSDN есть дополнительная информация.