Share via


Use o WebDriver para automatizar o Microsoft Edge

O WebDriver permite automatizar o Microsoft Edge simulando a interação do usuário. Os testes que usam o WebDriver têm algumas vantagens em relação aos testes de unidade JavaScript executados no navegador:

  • O WebDriver acessa a funcionalidade e as informações que não estão disponíveis para JavaScript em execução em navegadores.

  • O WebDriver simula eventos de usuário ou eventos no nível do sistema operacional com mais precisão do que os testes de unidade JavaScript.

  • O WebDriver gerencia várias janelas, guias e páginas da Web em uma única sessão de teste.

  • O WebDriver executa várias sessões do Microsoft Edge em um computador específico.

Este artigo fornece exemplos de código bruto e não testes completos. Este artigo não fornece uma forma completa de introdução ao Selenium WebDriver, mas abrange apenas as partes específicas do Microsoft Edge do processo. Isso inclui a obtenção do Microsoft Edge WebDriver e a definição de opções específicas do Microsoft Edge em código.

Relação entre o WebDriver e outros softwares

Para automatizar o Microsoft Edge com o WebDriver para simular a interação do usuário, você precisa de três componentes:

  • Microsoft Edge.
  • Microsoft Edge WebDriver.
  • Uma estrutura de teste do WebDriver.

A relação funcional entre esses componentes é a seguinte:

Tecnologia Função
WebDriver Um padrão W3C para um protocolo de fio neutro de plataforma e linguagem. Esse protocolo permite que programas fora de processo instruam remotamente o comportamento dos navegadores da Web.
Microsoft Edge WebDriver A implementação do protocolo WebDriver pela Microsoft especificamente para o Microsoft Edge. Os autores de teste gravam testes que usam comandos Do WebDriver que o Microsoft Edge WebDriver recebe. O Microsoft Edge WebDriver é então responsável por comunicar esse comando ao navegador.
Uma estrutura de teste do WebDriver Os autores de teste usam uma estrutura de teste para gravar testes de ponta a ponta e automatizar navegadores. Fornece uma interface específica do idioma que traduz seu código em comandos enviados para o Microsoft Edge WebDriver. Existem estruturas de teste do WebDriver para todas as principais plataformas e idiomas. Uma dessas estruturas é o Selenium WebDriver.
Driver de Explorer da Internet Uma implementação de código aberto do protocolo WebDriver especificamente para Explorer de Internet. Para executar testes de ponta a ponta herdados para o Modo de Explorer da Internet, recomendamos usar o Driver de Explorer da Internet.
Microsoft WebDriver (herdado) O driver anterior, específico do navegador para o Microsoft Edge (EdgeHTML), que também é conhecido como Versão Prévia do Microsoft Edge.

As seções a seguir descrevem como começar a usar o WebDriver para o Microsoft Edge.

Baixar Microsoft Edge WebDriver

Para começar a gravar testes automatizados, verifique se a versão do Microsoft Edge WebDriver instalada corresponde à versão do navegador da seguinte maneira:

  1. edge://settings/help Acesse e observe sua versão do Microsoft Edge:

    O número de build do Microsoft Edge em 15 de abril de 2021

  2. Acesse o Microsoft Edge WebDriver.

  3. Na seção Obter a versão mais recente da página, selecione uma plataforma no canal que corresponda ao número da versão do Microsoft Edge:

    A seção Obter a versão mais recente da página da WebDriver do Microsoft Edge

  4. Após a conclusão do download, extraia o msedgedriver executável para o local preferido. Adicione a pasta em que o executável está localizado à variável de PATH ambiente.

Você deve instalar um driver de navegador (Microsoft Edge WebDriver) e uma estrutura de teste do WebDriver (como Selenium WebDriver), conforme descrito em Escolher uma estrutura de teste do WebDriver abaixo. São componentes separados.

Escolher uma estrutura de teste do WebDriver

Depois de baixar o Microsoft Edge WebDriver, o último componente que você deve baixar é uma estrutura de teste do WebDriver. Os autores de teste usam estruturas de teste do WebDriver para gravar testes de ponta a ponta e automatizar navegadores. Uma estrutura de teste do WebDriver fornece uma interface específica do idioma que traduz seu código em comandos executados pelo Microsoft Edge WebDriver no Microsoft Edge. Existem estruturas de teste do WebDriver para todas as principais plataformas e idiomas, como Python, Java, C#, Ruby e JavaScript.

O Microsoft Edge WebDriver pode ser usado com qualquer estrutura do WebDriver. Este artigo fornece instruções para usar a estrutura do Selenium WebDriver, mas você pode usar qualquer linguagem de biblioteca, estrutura e programação que dê suporte ao WebDriver.

O Selenium WebDriver é uma implementação popular de uma estrutura do WebDriver. Selenium é uma biblioteca de automação entre navegadores que é agnóstica e agnóstica de estrutura de teste. Este artigo usa o Selenium WebDriver apenas como um exemplo ilustrativo e porque atende às necessidades da maioria dos usuários. Se você usar o Selenium para automatizar o Microsoft Edge, deverá usar o Selenium 4; Não há mais suporte para o Selenium 3.

Para realizar as mesmas tarefas usando uma estrutura de teste do WebDriver diferente do Selenium WebDriver, consulte a documentação oficial para sua estrutura de escolha.

Usando o Selenium WebDriver

Uma possível estrutura do WebDriver que você pode usar é o Selenium WebDriver, que faz parte do conjunto de ferramentas Selenium. O Selenium WebDriver é uma estrutura de teste de código aberto que pode ser usada em qualquer plataforma e fornece associações de idioma para Java, Python 3, C#, Ruby e JavaScript.

Se você usar o Selenium para automatizar o Microsoft Edge, deverá usar o Selenium 4; Não há mais suporte para o Selenium 3.

Para obter instruções detalhadas sobre como instalar o Selenium para seu ambiente de desenvolvimento e idioma preferido, consulte a documentação da Selenium sobre a instalação de uma biblioteca de Selenium.

Automatizar o Microsoft Edge com o WebDriver

Para automatizar um navegador usando o WebDriver, primeiro você deve iniciar uma sessão do WebDriver usando uma estrutura de teste do WebDriver. Uma sessão do WebDriver é uma única instância em execução de um navegador controlado por meio de comandos do WebDriver.

Inicie uma sessão do WebDriver para iniciar uma nova instância do navegador. A instância do navegador iniciada permanece aberta até que você feche a sessão do WebDriver.

A seção a seguir orienta você usando o Selenium 4 para iniciar uma sessão do WebDriver com o Microsoft Edge.

Observação

Este artigo fornece instruções para usar a estrutura do Selenium WebDriver, mas você pode usar qualquer linguagem de biblioteca, estrutura e programação que dê suporte ao WebDriver. Para realizar as mesmas tarefas usando outra estrutura, consulte a documentação para sua estrutura de escolha.

Automatizar o Microsoft Edge

O Selenium usa a classe para gerenciar uma sessão do EdgeDriver Microsoft Edge. O seguinte código:

  1. Inicia uma sessão do Microsoft Edge.
  2. Instrui o Microsoft Edge a ir para o Bing.
  3. Pesquisa por "WebDriver".
  4. Dorme por alguns segundos para que você possa ver os resultados.

Para começar a automatizar o Microsoft Edge com o WebDriver, copie e cole o snippet de código para seu idioma preferido:

using OpenQA.Selenium;
using OpenQA.Selenium.Edge;
using System.Threading;

namespace EdgeDriverSample
{
    class Program
    {
        static void Main(string[] args)
        {
            var driver = new EdgeDriver();
            try
            {
                driver.Url = "https://bing.com";

                var element = driver.FindElement(By.Id("sb_form_q"));
                element.SendKeys("WebDriver");
                element.Submit();

                Thread.Sleep(5000);
            }
            finally
            {
                driver.Quit();
            }
        }
    }
}

Gerenciar e configurar o serviço WebDriver do Microsoft Edge

Quando você cria um novo EdgeDriver objeto para iniciar uma sessão do Microsoft Edge, o Selenium inicia um novo processo do Microsoft Edge WebDriver com o qual o EdgeDriver objeto se comunica. O processo do Microsoft Edge WebDriver é fechado quando você chama o EdgeDriver método do Quit objeto. Permitir que cada EdgeDriver objeto gerencie seu próprio processo de driver pode ser ineficiente se você tiver muitos testes, pois cada teste deve aguardar o início de um novo processo de driver. Em vez disso, você pode criar um único processo do Microsoft Edge WebDriver e reutilizá-lo para vários testes.

O Selenium usa a EdgeDriverService classe para gerenciar um processo do Microsoft Edge WebDriver. Você pode criar uma EdgeDriverService vez antes de executar seus testes e, em seguida, passar esse EdgeDriverService objeto para o EdgeDriver construtor ao criar um novo EdgeDriver objeto. Quando você passar um EdgeDriverService para o EdgeDriver construtor, o EdgeDriver objeto usará este EdgeDriverService, em vez de criar um novo.

Você também pode usar EdgeDriverService para configurar opções de linha de comando para o processo do Microsoft Edge WebDriver, conforme mostrado abaixo.

O snippet a seguir cria um novo EdgeDriverService e habilita a saída de log verbosa:

var service = EdgeDriverService.CreateDefaultService();
service.UseVerboseLogging = true;

var driver = new EdgeDriver(service);

Configurar opções do Microsoft Edge

Você pode passar um EdgeOptions objeto para o EdgeDriver construtor para configurar opções extras para o processo de navegador do Microsoft Edge. A seção a seguir mostra como usar EdgeOptions para alguns cenários comuns. Para obter uma lista completa de opções com suporte, consulte Recursos e EdgeOptions.

Escolher binários específicos do navegador

Você pode iniciar uma sessão do WebDriver com binários específicos do Microsoft Edge. Por exemplo, você pode executar testes usando os canais de visualização do Microsoft Edge, como Microsoft Edge Beta, Dev ou Canary.

var options = new EdgeOptions();
options.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe";

var driver = new EdgeDriver(options);
Passar argumentos de linha de comando extras

Você pode usar EdgeOptions para configurar argumentos de linha de comando que serão passados para o processo do navegador do Microsoft Edge quando uma sessão for criada. Por exemplo, você pode configurar o navegador para ser executado no modo sem cabeça.

var options = new EdgeOptions();
options.AddArgument("headless");

var driver = new EdgeDriver(options);

Outras opções de instalação do WebDriver

Docker

Se você usar o Docker, execute o comando a seguir para baixar uma imagem pré-configurada que tenha o Microsoft Edge e o Microsoft Edge WebDriver pré-instalados.

docker run -d -p 9515:9515 mcr.microsoft.com/msedge/msedgedriver

Para obter mais informações, consulte o contêiner msedgedriver no Docker Hub.

Application Guard

Sites confiáveis que usam Microsoft Defender Application Guard podem ser automatizados usando o Microsoft Edge WebDriver. Microsoft Defender Application Guard também é chamado de Application Guard, para abreviar.

Sites não confiáveis que usam Application Guard não podem ser automatizados ou manipulados usando o Microsoft Edge WebDriver. Application Guard inicia sites não confiáveis em um contêiner e esse contêiner não expõe a porta de depuração remota que o Microsoft Edge WebDriver precisa para se comunicar com o site.

O administrador da empresa define o que são sites confiáveis, incluindo recursos de nuvem e redes internas. Sites que não estão na lista de sites confiáveis são considerados não confiáveis. O Microsoft Edge WebDriver pode automatizar janelas InPrivate e sites na lista de sites confiáveis.

Para obter mais informações sobre Application Guard, consulte:

Optar por não obter coleta de dados de diagnóstico

Por padrão, o Microsoft Edge WebDriver envia dados de diagnóstico, como o status do comando Novo WebDriver de Sessão para a Microsoft. Para desativar a coleta de dados de diagnóstico do Microsoft Edge WebDriver, defina a variável de MSEDGEDRIVER_TELEMETRY_OPTOUT ambiente como 1. Para obter mais informações sobre os dados coletados pelo Microsoft Edge WebDriver, consulte o Whitepaper de Privacidade do Microsoft Edge.

Microsoft WebDriver herdado para EdgeHTML

O Microsoft WebDriver é a implementação herdada do WebDriver para o Microsoft Edge, baseado em EdgeHTML. O Microsoft WebDriver foi distribuído como um componente opcional do Windows, pois o Microsoft Edge (EdgeHTML) herdado foi atualizado com o sistema operacional. O Microsoft WebDriver não é compatível com as versões mais recentes e baseadas em Chromium do Microsoft Edge. O Microsoft WebDriver ainda é disponibilizado para desenvolvedores que escreveram testes baseados no WebDriver para aplicativos UWP, porque eles dependem do EdgeHTML, mas o Microsoft WebDriver não é mais recomendado.

Consulte WebDriver (EdgeHTML).

Troubleshooting

Estas são considerações de solução de problemas ao usar o WebDriver para automatizar o Microsoft Edge.

Política de Disponibilidade de Ferramentas de Desenvolvedor

Se o administrador de TI tiver definido a política DeveloperToolsAvailability como 2, o Microsoft Edge WebDriver será impedido de dirigir o Microsoft Edge, pois o driver usa o Microsoft Edge DevTools. Para automatizar o Microsoft Edge, verifique se a política DeveloperToolsAvailability está definida como 0 ou 1.

Usando o modelo do Visual Studio

Se você estiver usando o modelo do Microsoft Edge WebDriver fornecido com o Visual Studio, que cria um projeto de teste simples, verifique se você fez o seguinte:

  • Baixe o Microsoft Edge WebDriver e verifique se ele está disponível no PATH.
  • Adicione a estrutura do WebDriver (como o pacote NuGet Do Selenium.WebDriver ) ao projeto.

Depois de fazer essas etapas, o teste de exemplo que navega até Bing deve ser concluído com êxito.

Erro devido às Ferramentas de Selenium para Microsoft Edge

Se você receber o seguinte erro ao tentar criar uma nova EdgeDriver instância: System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)', confira Atualizar do Selenium 3 para o Selenium 4 abaixo.

Atualização do Selenium 3 para o Selenium 4

Se você usou o Selenium Tools para o Microsoft Edge para adicionar suporte do Microsoft Edge aos testes do navegador Selenium 3, atualize seus testes para o Selenium 4 da seguinte maneira:

  1. Remova as Ferramentas de Selenium para o Microsoft Edge do seu projeto.

  2. Atualize seus testes para usar as classes internas EdgeDriver e relacionadas que o Selenium 4 fornece. Você deve atualizar todos os testes existentes do Selenium 3 para Selenium 4. Para saber mais sobre como atualizar para o Selenium 4, confira Atualizar para Selenium 4.

  3. Remova todos os usos da EdgeOptions.UseChromium propriedade. Essa propriedade não existe mais no Selenium 4, pois o Selenium 4 dá suporte apenas ao Microsoft Edge (Chromium mecanismo do navegador).

Não há suporte para Selenium 3

Para usar o WebDriver para automatizar o Microsoft Edge, se você usar o Selenium, verifique se você está usando o Selenium 4. Não há suporte para Selenium 3.

Todos os novos projetos que usam o Selenium devem usar o Selenium 4. Para usar o WebDriver para automatizar o Microsoft Edge, se você usar o Selenium, verifique se você está usando o Selenium 4. Não há mais suporte para o Selenium 3.

Ferramentas de Selenium para Microsoft Edge não são mais usadas

O Selenium 4 não requer Ferramentas de Selenium para o Microsoft Edge. As Ferramentas de Selenium para Microsoft Edge eram apenas para Selenium 3.

Não use o Selenium 4 com Ferramentas de Selenium para Microsoft Edge, pois o Selenium 4 já tem suporte interno para o Microsoft Edge. Se você tentar usar as Ferramentas de Selenium para o Microsoft Edge, ao tentar criar uma nova EdgeDriver instância, receberá o seguinte erro: System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)'. Se você estiver usando o Selenium 4 e receber esse erro, remova Microsoft.Edge.SeleniumTools do projeto e verifique se está usando as classes e oficiais EdgeOptionsEdgeDriver do OpenQA.Selenium.Edge namespace.

Consulte também