2013-08-04 2 views
0

Comment puis-je obtenir HAR sans devtools? lorsque je tente avec ce code, je recive cette erreur:Obtenir HAR sans devtools

Code

chrome.devtools.network.getHAR(function(result) { 
    var entries = result.entries; 
    if (!entries.length) { 
     Console.warn("Recarregue a pagina, ou inicie o stream"); 
    } 

    for (var i = 0; i < entries.length; ++i) { 
     console.log(entries[i]); 
    } 
}); 

erreur:

Uncaught TypeError: Cannot call method 'getHAR' of undefined 

J'ai ce code dans background.js

Manifest:

{ 
    "name": "Download Stream", 
    "version": "1.0", 
    "minimum_chrome_version": "10.0", 
    "description": "Efetua o download do stream", 
    "background": { "scripts": ["background.js"] }, 
    "page_action" : 
    { 
     "default_icon" : "icon-19.png", 
     "default_title" : "Download Stream" 
    }, 
    "permissions": [ 
     "tabs", 
     "http://*/*", 
     "https://*/*" 
    ], 
    "icons" : { 
     "48" : "icon-48.png", 
     "128" : "icon-128.png" 
    }, 
    "manifest_version": 2 
} 
+1

Vous ne pouvez pas faire cela. Vous pouvez uniquement appeler chrome.devtools. * API dans la page devtools. (L'API chrome.webRequest peut vous fournir des informations sur les requêtes réseau, à l'exception du corps de la réponse.) –

+0

Vraiment? Mon idée est de créer une icône de marque-page côté gauche, où je peux voir un résumé des médias sur la page. Est-ce possible? –

Répondre

1

Vous pouvez n'utilisez pas simplement l'API Chrome pour générer des fichiers HAR. Mais vous pouvez capturer HAR de Chrome en utilisant BrowsermobProxy et Chromedriver en utilisant Selenium Server.

Voici un exemple d'utilisation chromedriver avec BrowsermobProxy et Sélénium:

from browsermobproxy import Server 
from selenium import webdriver 
import os 
import json 
import urlparse 

server = Server("path/to/browsermob-proxy") 
server.start() 
proxy = server.create_proxy() 

chromedriver = "path/to/chromedriver" 
os.environ["webdriver.chrome.driver"] = chromedriver 
url = urlparse.urlparse (proxy.proxy).path 
chrome_options = webdriver.ChromeOptions() 
chrome_options.add_argument("--proxy-server={0}".format(url)) 
driver = webdriver.Chrome(chromedriver,chrome_options =chrome_options) 
proxy.new_har("http://stackoverflow.com", options={'captureHeaders': True}) 
driver.get("http://stackoverflow.com")  
result = json.dumps(proxy.har, ensure_ascii=False) 
print result 
proxy.stop()  
driver.quit() 

Commander Speedprofile pour rendre la vie plus facile.

Questions connexes