Add Network Interception & Modification powers to Selenium without code. Modify Headers, Insert Custom Scripts, Set up Redirects, Add Throttles and much more to Selenium using Requestly.
The @requestly/selenium package is deprecated. Use @requestly/rq-automation instead for integrating Requestly with your automation framework.
Takes less than a minute
Use Boilerplate Code
Turn your E2E tests into power tools with Requestly. Use the @requestly/rq-automation package to integrate easily, create rules without code, and apply them using a shared list URL or API key.
``const { addRequestHeaderUrl, addRequestHeadersUrl, removeRequestHeaderUrl, removeRequestHeadersUrl, addResponseHeaderUrl, addResponseHeadersUrl, removeResponseHeaderUrl, removeResponseHeadersUrl, importRules, closeWelcomePage, } = require("@requestly/rq-automation"); const { Builder } = require("selenium-webdriver"); const chrome = require("selenium-webdriver/chrome"); const { getExtension } = require("@requestly/rq-automation"); async function setupDriver() { const options = new chrome.Options(); // Load Requestly extension const extensionPath = getExtension("unpacked"); options.addArguments(`--load-extension=${extensionPath}`); options.addArguments(`--disable-extensions-except=${extensionPath}`); const driver = await new Builder() .forBrowser("chrome") .setChromeOptions(options) .build(); return driver; } async function seleniumExample() { const driver = await setupDriver(); await closeWelcomePage(driver); // Add a single request header await driver.get(addRequestHeaderUrl("X-Custom-Header", "MyValue")); // Add multiple request headers await driver.get( addRequestHeadersUrl({ Authorization: "Bearer token123", "X-Another-Header": "AnotherValue", }) ); // Remove a request header await driver.get(removeRequestHeaderUrl("X-Another-Header")); // Remove multiple request headers await driver.get( removeRequestHeadersUrl(["Authorization", "X-Custom-Header"]) ); // Add a response header await driver.get(addResponseHeaderUrl("Access-Control-Allow-Origin", "*")); // Add multiple response headers await driver.get( addResponseHeadersUrl({ "X-Response-Header": "ResponseValue", "X-Another-Response-Header": "AnotherResponseValue", }) ); // Remove a response header await driver.get(removeResponseHeaderUrl("X-Another-Response-Header")); // Remove multiple response headers await driver.get( removeResponseHeadersUrl(["X-Response-Header", "X-Another-Response-Header"]) ); // Import a shared list of rules await driver.get(importRules("YOUR_API_KEY")); // Your test code here await driver.get("https://example.com"); await driver.quit(); } seleniumExample();``
