Making a Proxy Server in Selenium: The Ultimate Guide

The Internet is used all over the globe. Information can be accessed readily. For privacy reasons, proxy servers are used as an intermediary between the server and the client. Proxy servers also serve as the first line of defense using firewalls so unwanted content may be blocked. 

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 localization testing can be done 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 is viewed 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, can be used to configure your proxy server to support the testing requirements. If Selenium powers the test, then an HTTP request for a browser is generated. 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, two options can be done in order to use authenticated proxies.

Instead of using the Chrome WebDriver, the PhantomJS will be used instead. This way is considered to be the easiest way. The condition should be using 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.