Capture HAR recordings from Chrome sessions or Selenium tests using Node.js
MIT License
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 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.