Skip to content

Latest commit

 

History

History
54 lines (34 loc) · 1.66 KB

README.md

File metadata and controls

54 lines (34 loc) · 1.66 KB

har-recorder

Use this package to capture HAR recordings from Chrome sessions or Selenium tests.

Using the Chrome Debugging Protocol thorugh chrome-remote-interface this pakcage listens to Chrome Fetch events and stores requests and reponses to HAR file.

Selenium usage example

const { startRecording, endRecording } = HarRecorder();

// enable chrome remote debugging on port 9223
let chrome_options = new chrome.Options()
    .addArguments("--remote-debugging-port=9223");

driver = await new Builder()
    .setChromeOptions(chrome_options)
    .forBrowser('chrome')
    .build();

// start the recording on port 9223
await startRecording({ port: 9223 });

// do Selenium stuff 
await driver.navigate().to('https://www.google.com');
await driver.wait(until.elementLocated(By.name('q')));

// save recording to file
endRecording('create-blog-post.har');
driver.quit();    

Installation

npm install har-recorder

Setup

An instance of either Chrome itself or another implementation needs to be running on a known port in order to use this module (defaults to localhost:9222).

API

The API consists of three parts:

  • The constructor function which creates a new HarRecorder.

  • startRecording([options]) which starts recording a given Chrome instance. The recording defaults to localhost:9222. Overide this by passing a CDP options object.

  • endRecording(filePath) which saves the HAR recording to a file and resets the stored requests.