Cómo manejar la autenticación de proxy en Selenium Webdriver

¿Qué es un proxy?

Un proxy actúa como intermediario entre los clientes que envían solicitudes y el servidor que responde. El uso principal de un proxy es mantener la privacidad y la encapsulación entre múltiples sistemas interactivos.

Un proxy también puede agregar otra capa de seguridad en la web al actuar como un firewall entre el Cliente y los servidores web. Esto se utiliza especialmente cuando los sitios web que utilizan los clientes deben etiquetarse como permitidos o bloqueados según el contenido del sitio web.

Este proceso se conoce como "Filtrado de contenido" y se usa más comúnmente en instituciones educativas, oficinas corporativas, etc. El filtrado de contenido se puede lograr fácilmente con la ayuda de un proxy. En términos de Internet, un proxy se puede implementar como un servidor separado que se encuentra entre las máquinas cliente y los servidores web o de bases de datos reales que responden.

Diferencia entre SOCKS y proxy HTTP

CALCETINES DIVERTIDOS Proxy HTTP
SOCKS significa enchufes seguros. Generalmente se utiliza como firewall entre el Cliente y el servidor. El proxy HTTP también se puede utilizar como firewall entre el cliente y el servidor, pero solo se puede utilizar para solicitudes HTTP.
SOCKS no interpreta los datos que se intercambian HTTP Proxy interpreta los datos que se intercambian entre el Cliente y el servidor
Más lento en términos de rendimiento. Mejor rendimiento en comparación con SOCKS

Cómo manejar el proxy en Selenium Webdriver en Chrome

La autenticación de proxy HTTP con Selenium en Chrome se puede manejar usando lo siguientewing enfoques

  • Usando la herramienta AutoIT
  • Usando alertas

Usando la herramienta AutoIT

Auto IT es una herramienta de terceros que se utiliza para windows automatización de escritorio. Dado que Selenium solo maneja ventanas emergentes basadas en web y windows, manejar los controles del sistema operativo no es posible usando Selenium.

Esto requiere el uso de herramientas externas de terceros, como Auto IT, para integrarse con Selenium. Para eso, Auto IT se usa más comúnmente para manejar cargas y descargas de archivos en sitios web.

Para utilizar AutoIT, debe descargar e instalar el software AutoIT en nuestras máquinas locales.

La descarga y la instalación de AutoIT se tratan en el artículo.

Abra Programas – Herramienta Autoit – SciTE Script Editor y agregue el script AutoIt mencionado a continuación en el editor Autoit y guárdelo como 'ProxyAuthentication.au3' en su sistema

Compile el archivo y conviértalo como "ProxyAuthentication.exe".

In Eclipse, agregue el archivo Auto IT a Selenium Script y ejecute

A continuación se muestra el script de AutoIT para la autenticación del proxy HTTP.

Send("guru99{ENTER}")
Send("guru99{ENTER}")

Debe pasar el archivo Auto IT para su ejecución en Selenium webdriver usando el siguiente código

Código fuente:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AutoITDemo {
    public static void main(String[] args) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\ chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("http://demo.guru99.com/test/basic_auth.php");
        //Passing the AutoIt Script to Selenium	
        Runtime.getRuntime().exec("D:\\Data_Personal\\ProxyAuthentication.exe");
    }
}

Explicación del código:

  • En el primer paso, inicializará una instancia del controlador Chrome configurando la propiedad del sistema para que apunte al archivo chromedriver.exe.
  • En el segundo paso, inicializará un objeto del controlador web y pasará la URL del sitio web mediante el método get.
  • Finalmente, está pasando el nombre de usuario y la contraseña a la ventana emergente de autenticación del proxy HTTP utilizando un archivo de secuencia de comandos de AutoIT.

Salida de código:

Manejo de alertas de nombre de usuario mediante AutoIT
Manejo de alertas de nombre de usuario mediante AutoIT
Manejo de alertas de contraseña usando AutoIT

Manejo de alertas de contraseña usando AutoIT
Pantalla de éxito de autenticación de proxy

Pantalla de éxito de autenticación de proxy

Usando alertas

Las alertas son una característica simple incorporada proporcionada por el controlador web Selenium. Puede manejar las ventanas emergentes de autenticación de proxy utilizando el controlador web Selenium cambiando a la alerta de autenticación de proxy HTTP y pasando el nombre de usuario y la contraseña directamente a la alerta. Con la ayuda del método de envío de claves.

Ejemplo:

Escenario de prueba:

Maneje la ventana emergente de autenticación de proxy HTTP en el sitio web: https://demo.guru99.com/test/basic_auth.php usando alertas en el controlador web Selenium.

Código fuente Ejemplo:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AlertsDemo {
    public static void main(String args[]) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\Data_Personal\\Software\\chromedriver_win32\\chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("http://demo.guru99.com/test/basic_auth.php");
        // Handling Username alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
        // Handling Password alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
    }
}

Salida de código

La autenticación de proxy se realizó correctamente.

Explicación del código:

  • Inicialmente, está creando una instancia del controlador Chrome configurando la propiedad webdriver para que apunte a la ubicación del archivo chromedriver.exe.
  • Luego, está abriendo la URL del sitio web requerido pasando la URL como parámetro al método driver.get()
  • Una vez que se abre la URL, cambia a la alerta de nombre de usuario y envía el nombre de usuario: guru99. Luego hará clic en el botón Aceptar en la alerta utilizando el método alert.accept.
  • Luego, cambia a la alerta de contraseña y envía la contraseña: guru99. Luego hará clic en el botón Aceptar en la alerta utilizando el método alert.accept.

Resumen

  • Un proxy actúa como intermediario entre los clientes que envían solicitudes y el servidor que responde. El uso básico de un proxy es mantener la privacidad y encapsulación entre múltiples sistemas interactivos.
  • La autenticación de proxy HTTP con Selenium en Chrome se puede manejar usando lo siguientewing enfoques
  • Pasar nombre de usuario y contraseña en la URL del sitio web
  • Usando la herramienta AutoIT
  • Usando alertas
  • De los tres enfoques anteriores, el uso de alertas es la forma más efectiva de manejar la autenticación de proxy HTTP en Selenium webdriver.