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

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

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

Isso requer o uso de ferramentas externas de terceiros, como Auto IT, para integração com Selenium. Para isso, o Auto IT é 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 nossas máquinas locais.

O download de uma instalação do AutoIT é abordado no 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 Auto IT a 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 Auto IT para execução em Selenium webdriver usando o código abaixo

Código fonte:

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");
    }
}

Explicação do código:

  • 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 a URL do site usando o método get
  • Finalmente, você está passando o nome de usuário e a senha para o pop-up de autenticação do proxy HTTP usando um arquivo de script AutoIT

Saída de código:

Tratamento de alerta de nome de usuário usando AutoIT
Tratamento de alerta de nome de usuário usando AutoIT
Tratamento de alerta de senha usando AutoIT

Tratamento de alerta 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();
    }
}

Saída de código

Autenticação de proxy realizada com sucesso.

Explicação do código:

  • 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 parâmetro para o método driver.get()
  • Assim que o URL for aberto, você mudará para o alerta de nome de usuário e enviará o nome de usuário – guru99. Você está então clicando no botão OK no 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

Resumo

  • Um proxy atua como intermediário entre os clientes que enviam solicitações e a resposta do servidor. O uso básico de um proxy é manter a privacidade e encapsulamento entre vários sistemas interativos.
  • Autenticação de proxy HTTP com Selenium no Chrome pode ser tratado usando as seguintes abordagens
  • Passando nome de usuário e senha na URL do site
  • Usando a ferramenta AutoIT
  • Usando Alertas
  • Das três abordagens acima, o uso de alertas é a maneira mais eficaz de lidar com a autenticação do proxy HTTP em Selenium driver da web