Making a Proxy Server in Selenium: The Ultimate Guide

The Internet is popular over the globe. With it, you can easily access information. For privacy reasons, proxy servers are an intermediary between the server and the client. Proxy servers also serve as the first line of defense to block unwanted content using firewalls. 

Proxy servers are also used in localization testing, especially in which software works for a specific area. However, it can be time-consuming to set up and manage proxy servers. Good thing that you can do localization testing with a web framework like Selenium.

This article aims to guide people on how to set up a proxy server in the Selenium web framework.


Proxy Servers for Localization Testing

In localization testing, proxy servers are essential because they get things done efficiently. For instance, you want to check how your website looks like in different languages like Japanese, Chinese, or Vietnamese. If you do things the hard way, you can ask a Chinese friend if your website works well in the Chinese language. But if you want the most straightforward way, using a web framework can help you access your website.

The leading web framework, Selenium, may configure your proxy server to support the testing requirements. If Selenium powers the test, then an HTTP request will generate a browser. The HTTP request runs several proxies at a time and will send the localized results.


Steps in Setting Up a Basic Proxy

Since using a proxy server is essential in localization testing, you need to set up one. You can set up an unauthenticated proxy server since most do not require a username or a password.

Here are the steps on how to set up an unauthenticated proxy server in Selenium:

  1. Import the Selenium WebDriver package
  2. Get the proxy server defined (IP: PORT or HOST: PORT)
  3. Set the Chrome Options
  4. Include the proxy server argument in the options
  5. Add the options to the Chrome instance

You may utilize this Chrome WebDiver instance to get the tests done that incorporate the proxy server. You can also test different locations at the same time. You’ll just have to reuse the codes.


Steps in Setting Up An Authenticated Proxy

Using authenticated proxy servers in automated tests is challenging and entails a lot of work. It can be tedious because there’s no other way to pass along the proxy server credentials set by Selenium. However, there are two options to use authenticated proxies.

Instead of using the Chrome WebDriver, you may use the PhantomJS instead. This way is the easiest way. The condition should use the older version of Selenium which is 3.7.1 since the newer version of Selenium does not support PhantomJS. Here are the steps:

  1. Set up Selenium and PhantomJS
  2. Create a proxied method to create the WebDriver
  3. Add up evar set up to ensure that tests do not expose sensitive information
  4. Run the new method

You can also try a different process. You can create a browser extension that does the authentication for Selenium. This slightly complex process can be used with the latest version of Selenium. Here are the steps:

  1. Create a Chrome Extension by including two files in an archive
  2. Add the extension to Selenium using the add_extension method
  3. Run the test

This easy process can be done once only. However, it may take a little while for Chrome.



Using proxy servers for testing localization is not easy, but it can be a lot of help. Using a premium proxy can be the best choice, but other options are also welcome.