A selenium proxy is a budget line, not a config detail
Selenium automation usually breaks for one boring reason, and it is not the code. Selectors work, the driver launches, and then the target starts serving captchas, empty pages or a login wall on the third run. A selenium proxy fixes the layer a script cannot touch — where the traffic appears to come from — and that single change is what turns a 40% success rate into a job you can schedule and forget about.
Mobile proxies route Selenium traffic through IP addresses issued by real cellular operators. Those addresses carry the highest trust score of all proxy types, because behind one carrier IP sit hundreds or thousands of genuine subscribers. Platforms rarely hard-ban such an address, they throttle it instead. The practical outcome is more pages collected per hour and fewer accounts burned by one careless run.
Why most proxies for selenium die on the first serious target
Datacenter IPs are cheap for a reason: their ASN is registered as hosting, and scoring services rate them around 75–100 out of 100 for risk before the first request even lands. Per-gigabyte pools sit in the middle and charge for every retry, including the blocked ones. A selenium proxy on a mobile carrier IP changes the arithmetic — the bill is tied to time, not to failed attempts.
| Proxy type | IP origin | Typical fraud score | What it costs in practice |
| Datacenter | Hosting / cloud ASN | 75–100 | Cheap, but retries and captcha solving eat the savings |
| Residential (other category) | Home ISP lines | 25–50 | Per-GB billing charges you for blocked requests too |
| Mobile | Cellular operator (MNO) | 0–15 | Flat price per port, unlimited traffic on the plan |
On aggressive targets — search results, large marketplaces, travel and booking sites, professional networks — per-GB residential pools often slide under 80% success. The same scripts on a carrier IP usually land in the 95–99% range. That gap is the difference between a dataset ready to ship and a file full of holes that has to be re-crawled tomorrow.
Selenium http proxy configuration: the parts that actually matter
The configuration itself is short. In Chrome you pass the address through a launch argument on the options object; in Firefox the same result comes from setting the network preferences on the options or from the Proxy class you import from the selenium.webdriver.common.proxy package. Either method takes three lines of code, and the driver picks the route up on start, so no part of the script logic has to be rewritten.
The real friction is authentication. Chrome's proxy launch argument does not accept login and password inline, which is why half the tutorials on the internet tell you to build a small browser extension with a background script that answers the auth prompt. That extension has to be zipped, loaded on every driver start, and re-checked after each Chrome update — an hour of maintenance nobody planned for.
Pro-tip: skip the extension entirely. Whitelist the IP of the machine that runs the scripts, and the port opens without credentials — the same configuration then works in Selenium, Playwright and any CLI tool on that server. OnlineProxy supports both login:password and IP whitelisting, so a headless server can use whitelisting while a laptop on a dynamic address keeps credentials.
Firefox is the calmer option for authenticated ports, because its preference-based setup handles credentials with less ceremony and speaks both HTTP(S) and SOCKS5. SOCKS5 matters beyond Selenium: it is the protocol antidetect browsers expect when the same port is reused for manual account work. One port that serves the script today and a browser profile tomorrow means one line in the budget instead of two.
Rotation modes matched to the script's lifecycle
A parser and an account farm need opposite behavior from the same port. Bulk collection wants a fresh address often; a logged-in session wants the IP to stay put until the work is done. Choosing the wrong mode is the most common reason a working script starts logging out mid-run.
| Mode | Best for | Result |
| Sticky session | Login flows, cart and checkout, paginated crawls | Session survives to the last page |
| Rotation by link | Scrapy/Selenium loops with retry logic | New IP exactly when a 403 appears |
| Rotation by timer | Long overnight jobs | Runs unattended without rate-limit walls |
Rotation by link is the one worth wiring into the code: on a blocked response the script calls the rotation URL, waits a few seconds for the modem to reconnect, and retries. No human babysitting, no dead job at 3 a.m. That is the point where a selenium proxy stops being a setting and starts being infrastructure.
The plan decides how much of this control is available. Lite gives a shared port with automatic rotation every 2–5 minutes and no way to steer it — fine for stateless collection, wrong for anything with a session. Regular hands over the whole device for the rental period: sticky sessions, rotation by link, rotation by timer, device reboot and priority support. For account work the Regular tier is not an upsell, it is the only tier where session control exists.
What a selenium proxy will not do for you
The network identity is one layer of four. A carrier IP does nothing about the browser fingerprint, and vanilla Selenium leaks plenty: automation flags, canvas and WebGL values, a font list that screams virtual machine. For multi-account scenarios the industry standard pairs the port with an antidetect browser — Dolphin Anty, Octo, AdsPower, Multilogin — where the proxy supplies the network identity and the profile supplies the browser one.
Behavior is the next layer. Ten page loads per second from a phone network is not a human pattern, no matter how clean the address is. Random delays, real scrolling, mouse paths and pauses between actions cost a few lines in the script and buy accounts that survive weeks instead of hours.
Then there is geo consistency. A port on a German operator paired with a browser reporting an American time zone, English locale and dollar currency is an instant red flag, and no rotation setting will repair it. Match the operator, the language, the time zone and the payment method to one geography, and the whole stack reads as one ordinary phone user.
Pro-tip: check the port before the first run, not after the ban. Verify through Spur.us, IPQualityScore or iphub that the ASN type comes back as mobile and the fraud score sits under 25. Also disable WebRTC in the driver configuration — a STUN leak exposes the machine's real address while every other setting looks perfect.
Pricing: per port, per period, no gigabyte meter
Scraping budgets get destroyed by per-GB billing, because a blocked request costs the same as a successful one. OnlineProxy bills per port for a period: 1 day, 7 days or 30 days, with 24 hours as the minimum billable window. Traffic on both plans is unbilled by volume, so a heavy crawl and a light one cost the same — the number in the invoice is known before the script starts.
Unlimited traffic means no gigabyte counter, not unlimited bandwidth. Mobile networks deliver roughly 5–50 Mbit/s with 50–300 ms of latency, which is invisible for parsing and account management and genuinely limiting only for video or bulk file downloads. Prices depend on country and operator and are shown on the plan page, so the cheaper carrier for a given target can be picked without a sales call.
Two more things worth knowing before the first purchase. Cashback is credited as promo balance after a paid rental finishes, and refunds follow the published refund and replacement policy: full return within the first hour after access is issued, later minus the time used, with a replacement port offered first when the issue is technical. Support runs around the clock with a target first response of four hours, which matters when a campaign is live and a port needs replacing now.
There is no free trial on mobile ports, and any provider promising free mobile access at scale is usually reselling something else. The widget on the site does hand out one free datacenter proxy — a different category, useful for smoke-testing that the driver reads the settings at all, not for the targets described above.
Pre-launch checklist
- Confirm the ASN type is mobile and the operator and city are named by the provider, not just the country.
- Pick the protocol first: HTTP(S) for the crawler, SOCKS5 if the same port will feed an antidetect browser.
- Choose authentication before writing the configuration — whitelisting on a server removes the need for an auth extension entirely.
- Bind one port to one account or one profile; mixing them links the identities and takes the whole batch down together.
- Wire the rotation link into the retry branch of the code, so a 403 triggers a new IP instead of a stopped job.
- Align language, time zone and currency with the operator's country in both Chrome and Firefox profiles.
- Warm new accounts for a few days before any bulk action; a fresh profile doing mass work looks wrong on any IP.
Treat the selenium proxy as the network half of the stack and the browser profile as the other half, and the numbers stop being a lottery: predictable success rates, a flat monthly cost per port, and accounts that outlive the campaign they were created for.