1

開発ツールなしで HAR を取得するにはどうすればよいですか? このコードを試してみると、次のエラーが表示されます。

コード

 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]);
    }
});

エラー:

Uncaught TypeError: Cannot call method 'getHAR' of undefined 

このコードを background.js に入れています

マニフェスト:

{
    "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
}
4

1 に答える 1

1

Chrome API を単純に使用して HAR ファイルを生成することはできません。ただし、BrowsermobProxy を使用して Chrome から HAR をキャプチャし、Selenium Server を使用して Chromedriver をキャプチャできます。

BrowsermobProxy と Selenium で chromedriver を使用する例を次に示します。

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()

Speedprofileをチェックして、生活を楽にしましょう。

于 2015-08-16T13:40:54.903 に答える