Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

To rotate proxies in Selenium or Puppeteer, first decide whether a provider will rotate traffic behind one endpoint or your code will choose among several endpoints. Then configure that endpoint or proxy list on the browser session. Keep this separate from the automation tools’ own network access: Selenium Manager may need a proxy to retrieve a driver or browser, while Puppeteer’s download settings do not necessarily configure the launched browser’s traffic.

Two different proxy settings can be involved

A proxy on a WebDriver session routes requests made by the browser. It does not automatically route Selenium Manager’s own connections used for tasks such as retrieving drivers or browsers. Selenium Manager has separate --proxy, configuration, and SE_PROXY settings for that network access. Its documented default network timeout is 300 seconds; that is a timeout, not a proxy rotation interval. Selenium Manager documentation

Puppeteer likewise has browser download and runtime proxy environment variables—HTTP_PROXY, HTTPS_PROXY, and NO_PROXY—but the configuration file and environment variables are ignored by puppeteer-core. Do not infer from a successful browser download that the browser session itself is using the intended proxy. Puppeteer configuration documentation

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configure the browser session

Selenium

Set the proxy through the browser options or WebDriver proxy capability when creating a session. Selenium’s JavaScript API exposes proxy settings through Chromium Options and the Builder’s setProxy method. If you later call withCapabilities, it can overwrite an earlier proxy setting, so inspect the final capabilities sent to the driver. Selenium driver options Selenium JavaScript Builder API Selenium JavaScript Chromium Options API

For Selenium Manager’s separate connection, use its documented --proxy option, configuration value, or SE_PROXY environment variable as appropriate for your setup. This is the setting to investigate when driver or browser retrieval fails before a browser session starts; changing the WebDriver session proxy will not solve that problem. Selenium Manager documentation

Puppeteer

Pass the proxy server to the launched Chromium browser using its proxy-server argument, following the endpoint’s scheme and address format. For example, an endpoint might take the form http://proxy.example:2138; use the actual value and protocol supplied by your proxy service. A third-party Puppeteer guide demonstrates --proxy-server and proxy authentication with page.authenticate(), but its example is not a guarantee of compatibility with every endpoint or current Puppeteer setup. Check the provider’s current browser instructions before relying on it. Puppeteer rotating proxy guide

Use Puppeteer’s documented environment variables for the proxy behavior they cover, and separately verify the launched browser’s route. In particular, puppeteer-core ignores Puppeteer configuration files and environment variables. Puppeteer configuration documentation

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose who controls rotation

Approach How it works What you must verify
Provider-managed endpoint Your application keeps connecting to an endpoint, and the service changes the outbound proxy or IP according to its own rules. Rotation trigger, session persistence, geographic selection, protocol, authentication, concurrency limits, and failure behavior. No universal rotation interval or sticky-session behavior is established; consult the provider’s current documentation. Puppeteer rotating proxy guide
Application-managed list Your code selects among configured proxy servers, potentially using its own selection logic. You own endpoint health checks, credentials, retries, session state, and request pacing. A failed endpoint or poorly designed retry can disrupt the workflow or generate unintended bursts.

Before choosing, compare the two approaches against the same requirements:

  • Session persistence: Can related requests stay on the same exit route when your workflow requires it?
  • Rotation controls: What event changes the route, and can you control or observe that change?
  • Protocol and authentication: Does the endpoint support the scheme and credential method your browser configuration uses?
  • Geography and limits: Are the required locations, concurrency, and usage levels supported?
  • Failure and policy: What happens when an endpoint is unavailable, and does the intended automation comply with the target’s rules and the provider’s terms?

These are implementation checks, not a claim that any particular provider supports every browser configuration or use case. Proxy rotation does not itself authorize access or ensure that a site will accept automated requests.

Understand proxy schemes, bypasses, and fallback

Chromium documents DIRECT, HTTP, HTTPS, SOCKSv4, and SOCKSv5 proxy schemes. Example proxy URIs include http://foo:2138 and socks5://foo:1080. Manual configurations can use separate proxy rules for HTTP, HTTPS, and other requests, along with bypass rules. An HTTP proxy can carry HTTPS using CONNECT: the destination hostname is sent to the proxy in clear text, while the HTTPS exchange remains end-to-end encrypted through the tunnel. Chromium network settings

Chrome’s extension proxy API names modes such as fixed_servers, pac_script, system, direct, and auto-detect, and describes per-protocol rules and fallback proxies. Those concepts help explain Chrome proxy behavior, but they do not mean Selenium or Puppeteer must be configured through the extension API. Chrome proxy API

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If a configured proxy is unreachable, Chromium documents that requests fail with ERR_PROXY_CONNECTION_FAILED unless a fallback such as direct:// is configured. Decide deliberately whether the authorized workflow should fail closed or fall back to a direct connection: direct fallback can send traffic outside the proxy route. Chromium network settings

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Diagnose a proxy that does not work

  1. Determine which connection failed. If the browser never starts or a driver/browser cannot be retrieved, investigate Selenium Manager or Puppeteer download networking. If the browser starts but its requests fail or take an unexpected route, investigate browser-session configuration.
  2. Check the endpoint independently. Confirm that the address resolves and is reachable from the machine or runtime where the browser runs. Verify the provider’s required protocol, port, and authentication method.
  3. Inspect the effective browser configuration. For Selenium, check the final options and capabilities after all builder calls. For Puppeteer, confirm the launched browser receives the proxy-server setting and that any authentication step matches the endpoint’s requirements.
  4. Verify actual egress. Make a permitted request to a service you control or are authorized to use and confirm the observed route. Do not treat the configured proxy string alone as proof that browser traffic used it.
  5. Check bypass and fallback behavior. Ensure the destination is not excluded by a bypass rule, and determine whether an unreachable proxy causes a visible failure or a direct connection.
  6. Review rotation and retry state. Confirm whether the provider changes routes or your application selects a new endpoint, and make retries bounded and intentional rather than immediately cycling through endpoints.

Configure for the route you intend

Use the browser-session setting to route browser traffic, and a separate tool-level proxy setting when Selenium Manager or a browser download needs network access. Choose provider-managed rotation when its documented session and rotation controls fit the workflow; choose application-managed selection only when you can reliably manage endpoint health, credentials, retries, and session state. Test authentication, bypass rules, and failure behavior before running the automation against its intended target.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.