Cómo manejar la autenticación de proxy en Selenium controlador web

⚡ Resumen inteligente

Autenticación de proxy en Selenium WebDriver gestiona la ventana emergente de credenciales que aparece cuando un navegador se conecta a través de un servidor proxy seguro. Porque Selenium No se pueden utilizar directamente los diálogos nativos; dos enfoques utilizan la herramienta AutoIt y las alertas integradas.

  • 🛡️ Función de proxy: Un proxy es un intermediario que añade privacidad, seguridad y filtrado de contenido.
  • 🔀 SOCKS vs HTTP: SOCKS no interpreta datos; un proxy HTTP solo lee las solicitudes HTTP.
  • 🪟 Ventanas emergentes nativas: Selenium No puede gestionar los diálogos del sistema operativo, por lo que se requiere ayuda externa.
  • 🛠️ Método AutoIt: Un script compilado de AutoIt envía el nombre de usuario y la contraseña a la ventana emergente.
  • ???? Método de alertas: Cambia a la alerta y envía las credenciales con sendKeys, luego acepta.

Manejar la autenticación de proxy en Selenium Controlador web

¿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 Controlador web en Chrome

Autenticación de proxy HTTP con Selenium En Chrome se puede manejar utilizando los siguientes enfoques

  • Utilizando la herramienta AutoIt
  • Usando alertas

Utilizando la herramienta AutoIt

AutoIt es una herramienta de terceros que se utiliza para la automatización de escritorios Windows. Desde Selenium Solo maneja ventanas y ventanas emergentes basadas en la web, no es posible manejar controles del sistema operativo usando Selenium.

Esto requiere el uso de herramientas externas de terceros, como AutoIt, para integrarse con SeleniumPara ello, AutoIt se utiliza con mayor frecuencia para gestionar la carga y descarga de archivos en sitios web.

Para usar AutoIt, necesita descargar e instalar el software AutoIt en sus equipos locales.

La descarga e instalación de AutoIt se explica 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 AutoIt a Selenium Script y ejecutar

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

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

Necesitas pasar el archivo AutoIt para su ejecución en Selenium controlador web usando el siguiente código

Fuente Code:

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("https://demo.guru99.com/test/basic_auth.php");
        //Passing the AutoIt Script to Selenium	
        Runtime.getRuntime().exec("D:\\Data_Personal\\ProxyAuthentication.exe");
    }
}

Code Explicación:

  • 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, se inicializa un objeto del controlador web y se le pasa el sitio web. URL utilizando el método get
  • Finalmente, estás pasando el nombre de usuario y la contraseña a la ventana emergente de autenticación del proxy HTTP usando un archivo de script de AutoIt.

Code Salida:

Gestión de alertas de nombre de usuario con AutoIt
Gestión de alertas de nombre de usuario con AutoIt
Gestión de alertas de contraseña con AutoIt

Gestión de alertas de contraseña con 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 e incorporada proporcionada por Selenium controlador web. Puede manejar ventanas emergentes de autenticación de proxy usando Selenium controlador web 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 Selenium controlador web.

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("https://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();
    }
}

Code Resultado

La autenticación de proxy se realizó correctamente.

Code Explicación:

  • Inicialmente, está creando una instancia del controlador Chrome configurando la propiedad webdriver para que apunte a la ubicación del archivo chromedriver.exe.
  • Entonces, estás abriendo el URL del sitio web requerido pasando el URL como parámetro del método driver.get()
  • En el momento que todos los DARWINs coticen incluyendo los deslizamientos URL Se abre, cambias a la alerta de nombre de usuario y envías el nombre de usuario: guru99. Luego haces clic en el botón Aceptar en la alerta usando 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.

Preguntas Frecuentes

Puedes insertar credenciales como https://usuario:contraseña@sitio.com, pero Chrome moderno y Firefox Bloquea esto por seguridad. Las alertas o extensiones del navegador ahora son más fiables para la autenticación por proxy.

AutoIt automatiza Windows controles de escritorio que Selenium no puede llegar, como ventanas emergentes de autenticación nativas y diálogos de carga de archivos. Compile un script de AutoIt en un ejecutable y llámelo desde Selenium código.

Un proxy redirige el tráfico para aplicaciones o navegadores específicos, principalmente ocultando direcciones IP o filtrando contenido. Una VPN cifra todo el tráfico del dispositivo en todo el sistema, ofreciendo mayor privacidad que un proxy estándar.

Sí. Las herramientas de prueba basadas en IA detectan los diálogos de autenticación, inyectan las credenciales almacenadas y se autorreparan cuando cambia el comportamiento de las ventanas emergentes, lo que reduce la dependencia de los frágiles scripts de AutoIt en los distintos navegadores.

Las herramientas de IA rotan los proxies de forma inteligente, detectan las solicitudes bloqueadas y adaptan los tiempos de espera cuando aparecen las solicitudes de autenticación. Esta automatización mejora la estabilidad de las pruebas para los sitios web que utilizan proxies corporativos o de filtrado de contenido.

Sí. Selenium La versión 4 añadió compatibilidad con el protocolo de herramientas para desarrolladores de Chrome, lo que permite configurar las credenciales HTTP mediante programación y gestionar la autenticación básica, evitando así el uso de AutoIt en muchos escenarios de proxy.

Resumir este post con: