25

基本的に必要なのは、次の操作の結果を自動化する方法です。

  1. 新しいタブを開きます。

  2. 開発者ツールで [ネットワーク] タブを開きます。

  3. URL をロードします。

  4. 「すべてを HAR として保存」を選択します。

多くの場合、提案されたソリューションにはPhantomJSbrowsermob-proxy、またはpcap2harの使用が含まれます。SPDYトラフィックを処理する必要があるため、これらは私の場合には当てはまりません。

私はGoogle Chrome Extensions APIに飛び込もうとしましたが、実際にいくつかのタスクを自動化することができましたが、HAR ファイルの生成に関してはまだ運がありません。現在、この方法は特に有望ですが、どのように使用するかまだわかりません。

言い換えれば、私はこの実験のようなものを Google の人たちから必要としています。次の点に注意してください。

Chrome のリモート デバッグ インターフェースをカスタム クライアントで使用しました。カスタム クライアントは、電話でブラウザを起動し、キャッシュやその他の状態をクリアし、ウェブ ページの読み込みを開始し、Chrome 開発者ツール メッセージを受信して​​、ページの読み込み時間やその他のパフォーマンス メトリックを判断します。

何か案は?


解決

興味深いことに、このような種類のテストを自動化する Node.js モジュールが完成しました: chrome-har-capturerです。これにより、 Remote Debugging Protocolをより深く掘り下げ、汎用の Chrome 自動化のための下位レベルの Node.js インターフェースであるchrome-remote-interfaceを作成する機会にもなりました。

4

3 に答える 3

12

簡単に言えば、目的のデータを直接取得する方法はありません。このgetHARメソッドは、DevTools 自体を拡張するための拡張機能にのみ適用できます。幸いなことに、HAR ファイルはあまり問題なく自分で作成できます。これはまさにphantom.js が行うことです。

  1. リモート デバッグで Chrome を起動する
  2. Websocket 接続を使用して、デバッグ ポートで Chrome に接続します。
  3. 「ネットワーク」デバッグを有効にします。キャッシュをクリアすることもできます。ネットワーク APIを参照してください。
  4. キャプチャしたいページに移動するようにブラウザに指示すると、Chrome はすべてのリクエスト メタデータをストリーミングして返します。
  5. ネットワーク データを HAR 形式、ala phantom.js に変換します。
  6. ...
  7. 利益。

有利なスタートとして、手順 1 ~ 4 を開始するための Ruby コードのサンプルを掲載した投稿があります: http://www.igvita.com/2012/04/09/driving-google-chrome-via-websocket -api/

于 2012-11-24T02:56:23.607 に答える