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.
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();
npm install har-recorder
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
).
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 tolocalhost:9222
. Overide this by passing a CDP options object. -
endRecording(filePath)
which saves the HAR recording to a file and resets the stored requests.