Magazine

Guide to Using Proxies for Selenium Automation Testing

Posted on the 15 July 2019 by Chris Prosser @private_proxy

Selenium - browser automation toolAre you plan to use browsermob-proxy with Selenium for data fetching by HTTP(s) request Or maybe want to know which type of proxies are the best for Selenium automated testing, And what’re proxy settings are required for selenium grid?

What is Selenium? 

Selenium is a browser automation tool that allows you to automate activities in different types of browsers like Chrome, Firefox, and Internet Explorer.

It also supports a majority of operating systems and programming languages such as Java, C#, Ruby, Python, and JavaScript.

A headless browser is a web browser without a user interface that is commonly used by developers, quality assurance teams and engineers to emulate specific scenarios and tests their results.

In regards to installation and use, Selenium requires some technical skills in terms of understanding web technologies and APIs.  With Selenium WebDriver you can upload or download files, work with pop-ups and overcome dialog barriers.

Selenium for Chrome, Firefox, and IE

Why use Selenium for your test automation? 

Using Selenium, developers are able to emulate a behavior and follow the results with no limitations in terms of integration of other add-ons.

Selenium is the most flexible tool in terms of automation and functionality. It provides a blank slate and therefore the ability to create the exact environment a developer needs for the most accurate testing environment.

A headless browser like Selenium lacks types of software like Flash Player and digital rights management. These types of scripts can send information about the specific PC being used and by removing them altogether, you can increase your anonymity which will increase the success rate of your operations.

Websites compare information from your PC and check sessions with cookies. These sites, when using API, require a new cookie every few requests, the same user agent, and even the same accept-language.

A broken user agent or lack thereof may trigger an error response by the target website. By properly configuring Selenium, you can access and automate your operations with any target site for any reasonable scenario.

Why do you require proxies for Selenium? 

Selenium allows you to code all aspects of your computer, software, and fingerprints, but you cannot code your IP address.

Selenium itself does not support HTTP/HTTPS request fetching, But lots of guys are really want to use Selenium to do that, BrowserMob-Proxy is most recommended proxy manager for Selenium to handle your http(s) requests.

Without altering your IP address, no matter the settings or features used, you can be easily traced. Using Selenium with an IPPN (IP Proxy Network) will provide the complete anonymity desired in a testing environment.

Also, if your UI testing projects that do really need the proxies, You’ll most likely need Selenium Grid – To help you distributed and parallel Tests Execution, Use the proxies for Selenium Grid will help you save lots of time!

Residential proxies are real-user IPs which have all the characteristics needed for accurate testing. By resolving DNS at the peer, utilizing a headless browser like Selenium and applying the appropriate settings, your operations and tests will be completely anonymous and provide an unbiased view.

Not only does an IPPN provide the anonymity required in testing, but it also ensures that sites, apps, and types of software work as expected in different geo locations and across multiple devices.

Why choose Luminati as your IPPN?

Luminati offers the largest network of residential IPs with 37+ million IPs across the globe with the country/city, ASN, mobile carrier targeting.

City - ASN - moblie carrier targeted IPs

As a leader in the IPPN market, Luminati has multiple networks including rotating residential, ISP (static residential) IPs, Mobile and Data Center, offering a one-stop-solution for all your proxy needs.

Luminati proxy network

With Luminati’s proprietary technology and powerful software –  Luminati Proxy Manager, you can automate your operations in their entirety.

The Luminati Proxy Manager is free, open-source software that is easily integrated through API and provides automatic auto-retry of IPs, automatic routing through multiple network types, and the ability to manipulate IPs without any coding.

Learn more about Luminati if you want to see the details before purchasing.

How to connect Selenium with Luminati’s Proxy networks?

Let you show you step to steps, There are 2 ways to set up Luminati proxies on Selenium webdriver, One is using Proxy API (Super proxy), the other uses Luminati Proxy Manager (Really powerful)!

Luminati + Selenium

Luminati Super Proxy and Selenium Integration

  • Create a zone within your Luminati Dashboard.
  • Select a ‘Network type’ and click save.
  • Within Selenium fill in the ‘Proxy IP:Port’ in the ‘setProxy’ function. For example, zproxy.lum-superproxy.io:22225 of both HTTP and https.
  • Under ‘sendKeys’ input your Luminati account ID and proxy zone name: lum-customer-CUSTOMER-zone-YOURZONE and your zone password found in the zone settings.

For example:

const {Builder, By, Key, until} = require('selenium-webdriver');
const proxy = require('selenium-webdriver/proxy');
(async function example(){
let driver = await new Builder().forBrowser('firefox').setProxy(proxy.manual({
http: 'zproxy.lum-superproxy.io:22225',
https: 'zproxy.lum-superproxy.io:22225'
})).build()
try {
await driver.get('http://lumtest.com/myip.json');
driver.switchTo().alert()
.sendKeys('lum-customer-USERNAME-zone-YOURZONE'+Key.TAB+'PASSWORD');
driver.switchTo().alert().accept();
} finally {
await driver.quit();
}
})();

Luminati Proxy Manager and Selenium Integrati

  • Create a zone with the network, IP type, and number of IPs you wish to use.
  • Install the Luminati Proxy Manager.
  • Click ‘add new proxy’ and choose the zone and settings you require, then click ‘save’.
  • In Selenium under the setProxy input your local IP and proxy manager port (i.e. 127.0.0.1:24000)
  • The local host IP is 127.0.0.1
  • The port created in the Luminati Proxy Manager is 24XXX, for example, 24000
  • Leave the username and password fields empty, as the Luminati Proxy Manager has already been authenticated with the Super Proxy.

If you’ve never used Luminati Proxy Manager, You can visit selected part from “Beginner’s Guide to Web Scraping with Python & Scraper Tools” to know a little more about their LPM.

For example:

const {Builder, By, Key, until} = require('selenium-webdriver');
const proxy = require('selenium-webdriver/proxy');
(async function example(){
let driver = await new Builder().forBrowser('firefox').setProxy(proxy.manual({
http: '127.0.0.1:24000',
https: '127.0.0.1:24000'
})).build()
try {
await driver.get('http://lumtest.com/myip.json');
driver.switchTo().alert().accept();
} finally {
await driver.quit();
}
})();

If you are a developer, engineer, or work in quality assurance, using Luminati’s networks simultaneously with the Selenium headless browser will provide the perfect environment for testing.


Together all, every aspect of a request can be coded, ensuring the most accurate results needed in rigorous testing and a true understanding of usability.


Back to Featured Articles on Logo Paperblog