The shared problem: browser authentication
Selenium drives real browsers, and browsers don't accept proxy credentials from the command line. On both Webshare and Geonode, you solve that the same ways:
- IP allowlisting: register the machine's IP with the provider and skip credentials. Webshare calls it IP authorization; Geonode calls it IP whitelisting.
- Selenium Wire or a similar library that adds credentials through a local proxy.
- A local forwarding proxy (for example, a small Squid or mitmproxy) that holds the credentials.
Provider walkthroughs: Webshare with Selenium and Geonode with Selenium.
Allowlisting vs username options
With IP allowlisting there's no username, and on both providers the username is where session and targeting options normally live. So:
- For fixed IPs (Webshare lists, Geonode ISP proxies), allowlisting is perfect: one driver, one IP.
- For rotating residential with sessions or city targeting, use Selenium Wire or a local forwarder so you can send the full username.
from selenium import webdriver
opts = webdriver.ChromeOptions()
opts.add_argument("--proxy-server=http://FIXED_PROXY_IP:PORT") # IP allowlisted
driver = webdriver.Chrome(options=opts)Rotation per driver
The proxy is fixed when a driver starts. On either provider, rotate by starting new drivers with new proxies or new session usernames. Keep one driver per account for logged-in work.
| Need | Webshare | Geonode |
|---|---|---|
| One fixed IP per driver | Datacenter or static residential list | ISP proxies |
| Fresh residential IP per driver | New session number via Selenium Wire | New session ID via Selenium Wire |
| Long sessions per driver | Static IP | Sticky up to 24 hours or ISP |
Cost considerations
Selenium is often used for QA and moderate automation rather than massive scraping. For QA across countries on lenient sites, Webshare's cheap per-country datacenter lists are a natural fit. For automation on protected sites, Geonode's per-GB residential prices are lower at list prices. See pricing compared.
Proxy tip: To test the Geonode side of this comparison, a small residential balance from Geonode is enough, and it doesn't expire if you pause. See using Geonode with Selenium for its full product range.
Which to choose by job
| Selenium job | Better fit |
|---|---|
| QA in many countries | Webshare datacenter by country |
| Account automation | Either provider's dedicated static IPs |
| Protected-site automation | Geonode residential, test Webshare |
| Legacy test suites needing allowlisting | Either |
Verdict
Selenium setup is the same on both. Choose Webshare for cheap fixed IPs and QA, Geonode for residential-heavy automation and long sessions.
A local forwarder that works with both
A small forwarding proxy on localhost can point at either provider:
- Run the forwarder with an upstream setting (Webshare or Geonode host, username, password).
- Point Selenium at
http://127.0.0.1:PORTwithout credentials. - Switch providers by restarting the forwarder with different upstream settings.
This keeps your Selenium code identical across providers and supports session and targeting options in usernames.
Grid setups
In a Selenium Grid, assign each node a provider and product, and tag test results with the node. Geo-specific failures then point clearly at a provider, a location or the application.
Budget tip: The cheapest way to settle this comparison is to test both: Webshare has a free datacenter plan, and Geonode offers a low-cost residential trial. Run the same targets through each. See using Webshare with Selenium.
When to migrate off Selenium
If proxy authentication workarounds are a recurring pain, Playwright's native proxy credentials remove them. For existing suites, a forwarder is usually the fastest fix.
A real-world example
An enterprise QA team maintains 3,000 Selenium tests and needs to run 200 of them from Germany and Japan. They allowlist their grid's outbound IP with both providers, assign German and Japanese static IPs from whichever provider has them, and pass --proxy-server per test session. The rest of the suite runs without proxies. No test code changes beyond a capability per session.
If you're still shortlisting, compare this setup with the options in our best proxies guide, and use our cheap proxies guide to estimate what a sensible budget looks like. For browser automation in depth, see our Puppeteer proxies guide.
Key takeaways
- Selenium's browsers can't take proxy credentials, so IP allowlisting is key on both providers.
- Use Selenium Wire or a local forwarder for rotating residential sessions with credentials.
- Start new drivers to change IPs.
- Webshare suits cheap QA from many countries; Geonode suits residential-heavy automation.
- Consider Playwright for new projects to avoid authentication workarounds.
FAQ
Do I need IP allowlisting for Selenium?
Not if you use Selenium Wire or a local forwarder, but allowlisting is the simplest option for fixed IPs.
Can I use SOCKS5 with Selenium on either provider?
Yes with IP allowlisting, since browsers can't send SOCKS5 credentials.
Is Selenium Wire safe to use?
It works, but it's no longer actively maintained. Pin versions and test, or use a local forwarder for production.
Can I use rotating residential with Selenium?
Yes, through Selenium Wire or a local forwarder that sends the session username.
Which provider is easier for Selenium?
Both are similar; IP allowlisting is the key feature, and both offer it.
Does headless mode affect proxy behaviour?
No, but headless browsers are easier for sites to detect, which can cause blocks regardless of proxy.
Editorial note: Proxy providers change their pools, features and prices often, so treat any figures here as typical ranges at the time of writing and confirm current terms with the provider before you buy.