Como lidar com a autenticação de proxy em Selenium Driver da Web

⚡ Resumo Inteligente

Autenticação de proxy em Selenium O WebDriver lida com a janela pop-up de credenciais que aparece quando um navegador se conecta por meio de um servidor proxy seguro. Porque Selenium Não é possível operar diálogos nativos diretamente; duas abordagens utilizam a ferramenta AutoIt e alertas integrados.

  • 🛡️ Função de representante: Um proxy é um intermediário que adiciona privacidade, segurança e filtragem de conteúdo.
  • 🔀 SOCKS vs HTTP: O SOCKS não interpreta dados; um proxy HTTP lê apenas solicitações HTTP.
  • 🪟 Pop-ups nativos: Selenium Não consegue lidar com diálogos do sistema operacional, sendo necessária ajuda externa.
  • 🛠️ Método AutoIt: Um script AutoIt compilado envia o nome de usuário e a senha para a janela pop-up.
  • 🚨 Método de alertas: Alterne para o alerta e envie as credenciais com sendKeys, depois aceite.

Gerenciar autenticação de proxy em Selenium webdriver

O que é um proxy?

Um proxy atua como intermediário entre os clientes que enviam solicitações e a resposta do servidor. O principal uso de um proxy é manter a privacidade e o encapsulamento entre vários sistemas interativos.

Um proxy também pode adicionar outra camada de segurança na web, agindo como um firewall entre o cliente e os servidores web. Isso é especialmente usado quando os sites que os clientes usam precisam ser rotulados como permitidos ou bloqueados com base no conteúdo do site.

Este processo é conhecido como 'Filtragem de Conteúdo' e é mais comumente usado em Instituições Educacionais, Escritórios Corporativos, etc. A Filtragem de Conteúdo pode ser facilmente realizada com a ajuda de um proxy. Em termos de Internet, um proxy pode ser implementado como um servidor separado que fica entre as máquinas clientes e os servidores reais da web ou de banco de dados que respondem.

Diferença entre SOCKS e proxy HTTP

MEIAS Proxy HTTP
SOCKS significa soquetes seguros. Geralmente é usado como um firewall entre o cliente e o servidor O proxy HTTP também pode ser usado como firewall entre o cliente e o servidor, mas pode ser usado apenas para solicitações HTTP
SOCKS não interpreta os dados trocados O proxy HTTP interpreta os dados trocados entre o cliente e o servidor
Mais lento em termos de desempenho Melhor desempenho em comparação com SOCKS

Como lidar com proxy em Selenium Webdriver no Chrome

Autenticação de proxy HTTP com Selenium no Chrome pode ser tratado usando as seguintes abordagens

  • Usando a ferramenta AutoIt
  • Usando Alertas

Usando a ferramenta AutoIt

O AutoIt é uma ferramenta de terceiros usada para automação de desktops Windows. Selenium manipula apenas pop-ups e janelas baseados na web, não é possível manipular os controles do sistema operacional usando Selenium.

Isso requer a integração de ferramentas externas de terceiros, como o AutoIt. SeleniumPara isso, o AutoIt é mais comumente usado para lidar com uploads e downloads de arquivos em sites.

Para usar o AutoIt, você precisa baixar e instalar o software AutoIt em suas máquinas locais.

O download e a instalação do AutoIt são abordados no guia. neste artigo.

Abra Programas - ferramenta Autoit - SciTE Script Editor e adicione o script AutoIt mencionado abaixo no editor Autoit e salve-o como 'ProxyAuthentication.au3' em seu sistema

Compile o arquivo e converta-o como 'ProxyAuthentication.exe'.

In Eclipse, adicione o arquivo AutoIt ao Selenium Script e execução

Abaixo está o script AutoIt para autenticação de proxy HTTP.

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

Você precisa passar o arquivo AutoIt para execução em Selenium webdriver usando o código abaixo

fonte 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 Explicação:

  • Na primeira etapa, você está inicializando uma instância do driver do Chrome definindo a propriedade do sistema para apontar o arquivo chromedriver.exe
  • Na segunda etapa, você inicializa um objeto do driver da web e passa o site como parâmetro. URL usando o método get
  • Por fim, você está passando o nome de usuário e a senha para a janela pop-up de autenticação do proxy HTTP usando um arquivo de script AutoIt.

Code Saída:

Tratamento de alertas de nome de usuário usando AutoIt
Tratamento de alertas de nome de usuário usando AutoIt
Tratamento de alertas de senha usando AutoIt

Tratamento de alertas de senha usando AutoIt
Tela de sucesso da autenticação de proxy

Tela de sucesso da autenticação de proxy

Usando Alertas

Alertas são recursos simples e integrados fornecidos por Selenium motorista web. Você pode lidar com pop-ups de autenticação de proxy usando Selenium web, alternando para o alerta de autenticação de proxy HTTP e passando o nome de usuário e a senha diretamente para o alerta. Com a ajuda do método de envio de chaves.

Exemplo:

Cenário de teste:

Lide com o pop-up de autenticação do proxy HTTP no site: https://demo.guru99.com/test/basic_auth.php usando alertas em Selenium motorista web.

Exemplo de código fonte:

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 saída

Autenticação de proxy realizada com sucesso.

Code Explicação:

  • Inicialmente, você está instanciando uma instância do driver Chrome definindo a propriedade webdriver para apontar a localização do arquivo chromedriver.exe
  • Então, você está abrindo o URL do site necessário, passando o URL como um parâmetro para o método driver.get()
  • Uma vez URL A janela de alerta é aberta. Você alterna para o alerta de nome de usuário e envia o nome de usuário – guru99. Em seguida, você clica no botão OK do alerta usando o método alert.accept.
  • Então, você muda para o alerta de senha e envia a senha – guru99. Você está então clicando no botão OK no alerta usando o método alert.accept

Perguntas Frequentes

Você pode incorporar credenciais como https://user:pass@site.com, mas o Chrome moderno e Firefox Bloqueie isso por segurança. Alertas ou extensões de navegador agora são mais confiáveis ​​para autenticação de proxy.

O AutoIt automatiza Windows controles de desktop que Selenium não pode ser acessado, como pop-ups de autenticação nativa e diálogos de upload de arquivos. Você compila um script AutoIt em um executável e o chama de Selenium código.

Um proxy redireciona o tráfego para aplicativos ou navegadores específicos, principalmente ocultando endereços IP ou filtrando conteúdo. Uma VPN criptografa todo o tráfego do dispositivo em todo o sistema, oferecendo maior privacidade do que um proxy padrão.

Sim. As ferramentas de teste baseadas em IA detectam diálogos de autenticação, injetam credenciais armazenadas e se autorreparam quando o comportamento das janelas pop-up muda, reduzindo a dependência de scripts AutoIt frágeis em diferentes navegadores.

As ferramentas de IA rotacionam proxies de forma inteligente, detectam solicitações bloqueadas e adaptam os tempos de espera quando surgem solicitações de autenticação. Essa automação melhora a estabilidade dos testes em sites que utilizam proxies corporativos ou de filtragem de conteúdo.

Sim. Travas deslizantes portáteis Selenium A versão 4 adicionou suporte ao protocolo Chrome DevTools, permitindo que você defina credenciais HTTP programaticamente e lide com a autenticação básica, evitando o uso do AutoIt em muitos cenários de proxy.

Resuma esta postagem com: