🎉 Requestly API Client if now Free Forever & Open Source. Try now.

Requestly for Selenium

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.

Modheader

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();

				
			
Customers love us

Loved by developers around the World

Developers around the world trust us to simplify debugging, speed up workflows, and make development more efficient.