Partilhar via


Use o WebDriver para automatizar o Microsoft Edge

O WebDriver permite-lhe automatizar o Microsoft Edge ao simular a interação do utilizador. Os testes que utilizam o WebDriver têm algumas vantagens sobre os testes de unidades javaScript que são executados no browser:

  • O WebDriver acede a funcionalidades e informações que não estão disponíveis para JavaScript em execução em browsers.

  • O WebDriver simula eventos de utilizador ou eventos ao nível do SO com mais precisão do que os testes de unidades javaScript.

  • O WebDriver gere várias janelas, separadores e páginas Web numa única sessão de teste.

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

Este artigo fornece exemplos de código não processado e não testes completos. Este artigo não fornece instruções completas para começar a utilizar o Selenium WebDriver, mas abrange apenas as partes específicas do Microsoft Edge do processo. Isto inclui obter o Microsoft Edge WebDriver e definir opções específicas do Microsoft Edge no código.

Relação entre o WebDriver e outro software

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

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

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

Tecnologia Função
WebDriver Um padrão W3C para um protocolo de transmissão neutro em linguagem e plataforma. Este protocolo permite que os programas fora do processo instruam remotamente o comportamento dos browsers.
Microsoft Edge WebDriver A implementação do protocolo WebDriver da Microsoft especificamente para o Microsoft Edge. Os autores de testes escrevem testes que utilizam comandos do WebDriver que o Microsoft Edge WebDriver recebe. O Microsoft Edge WebDriver é, em seguida, responsável por comunicar esse comando ao browser.
Uma arquitetura de teste do WebDriver Os autores de testes utilizam uma arquitetura de teste para escrever testes ponto a ponto e automatizar browsers. Fornece uma interface específica do idioma que traduz o seu código em comandos que são enviados para o Microsoft Edge WebDriver. As arquiteturas de teste do WebDriver existem para todas as principais plataformas e idiomas. Uma dessas arquiteturas é o Selenium WebDriver.
Controlador de internet Explorer Uma implementação open source do protocolo WebDriver especificamente para a Internet Explorer. Para executar testes ponto a ponto legados para o Modo de Explorer da Internet, recomendamos a utilização do Controlador de Explorer da Internet.
Microsoft WebDriver (legado) O controlador anterior específico do browser para o Microsoft Edge (EdgeHTML), também conhecido como Versão Prévia do Microsoft Edge.

As secções seguintes descrevem como começar a utilizar o WebDriver para Microsoft Edge.

Baixar Microsoft Edge WebDriver

Para começar a escrever testes automatizados, certifique-se de que a versão do Microsoft Edge WebDriver que instalar corresponde à sua versão do Microsoft Edge. As primeiras três partes do número da versão de quatro partes têm de corresponder.

Transfira e instale uma versão do Microsoft Edge WebDriver que corresponda à sua versão do browser, da seguinte forma:

  1. Aceda a e anote a edge://settings/help sua versão do Microsoft Edge, um número de quatro partes:

    O número de compilação do Microsoft Edge a 28 de setembro de 2024

  2. Aceda ao Microsoft Edge WebDriver.

  3. Na secção Transferências da página, clique num botão de plataforma (como x64) num número de versão que corresponda ao número da sua versão do Microsoft Edge:

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

    As três primeiras partes do número da versão de quatro partes têm de corresponder, entre o Microsoft Edge e o Microsoft Edge WebDriver. Por exemplo, as seguintes versões do Microsoft Edge e do Microsoft Edge WebDriver funcionarão em conjunto, porque os três primeiros números são os mesmos:

    • 128.0.2739.79
    • 128.0.2739.84

    Para transferir versões mais antigas, clique no botão Ir para o diretório completo abaixo da secção Versões recentes .

  4. Após a conclusão da transferência, extraia o msedgedriver executável para a sua localização preferida. Adicione a pasta onde o executável está localizado à variável de PATH ambiente.

Tem de instalar um controlador de browser (Microsoft Edge WebDriver) e uma estrutura de teste do WebDriver (como o Selenium WebDriver), conforme descrito em Escolher uma arquitetura de teste do WebDriver abaixo. Estes são componentes separados.

Escolher uma estrutura de teste do WebDriver

Depois de transferir o Microsoft Edge WebDriver, o último componente que tem de transferir é uma arquitetura de teste do WebDriver. Os autores de testes utilizam arquiteturas de teste do WebDriver para escrever testes ponto a ponto e automatizar browsers. Uma arquitetura de teste do WebDriver fornece uma interface específica da linguagem que traduz o seu código em comandos que o Microsoft Edge WebDriver executa no Microsoft Edge. As arquiteturas de teste do WebDriver existem para todas as principais plataformas e linguagens, como Python, Java, C#, Ruby e JavaScript.

O Microsoft Edge WebDriver pode ser utilizado com qualquer arquitetura do WebDriver. Este artigo fornece instruções para utilizar a arquitetura Selenium WebDriver, mas pode utilizar qualquer linguagem de biblioteca, arquitetura e programação que suporte o WebDriver.

O Selenium WebDriver é uma implementação popular de uma arquitetura WebDriver. O Selenium é uma biblioteca de automatização entre browsers que é agnóstica de linguagem e test-framework agnóstica. Este artigo utiliza o Selenium WebDriver apenas como exemplo ilustrativo e porque satisfaz as necessidades da maioria dos utilizadores. Se utilizar o Selenium para automatizar o Microsoft Edge, tem de utilizar o Selenium 4; O Selenium 3 já não é suportado.

Para realizar as mesmas tarefas através de uma arquitetura de teste do WebDriver que não o Selenium WebDriver, consulte a documentação oficial da sua estrutura de eleição.

Utilizar o Selenium WebDriver

Uma arquitetura do WebDriver possível que pode utilizar é o Selenium WebDriver, que faz parte do conjunto de ferramentas Selenium. O Selenium WebDriver é uma arquitetura de teste open source que pode ser utilizada em qualquer plataforma e fornece enlaces de linguagem para Java, Python 3, C#, Ruby e JavaScript.

Se utilizar o Selenium para automatizar o Microsoft Edge, tem de utilizar o Selenium 4; O Selenium 3 já não é suportado.

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

Automatizar o Microsoft Edge com o WebDriver

Para automatizar um browser com o WebDriver, primeiro tem de iniciar uma sessão do WebDriver através de uma arquitetura de teste do WebDriver. Uma sessão do WebDriver é uma única instância em execução de um browser que é controlado através de comandos do WebDriver.

Inicie uma sessão do WebDriver para iniciar uma nova instância do browser. A instância do browser iniciada permanece aberta até fechar a sessão do WebDriver.

A secção seguinte explica-lhe como utilizar o Selenium 4 para iniciar uma sessão do WebDriver com o Microsoft Edge.

Observação

Este artigo fornece instruções para utilizar a arquitetura Selenium WebDriver, mas pode utilizar qualquer linguagem de biblioteca, arquitetura e programação que suporte o WebDriver. Para realizar as mesmas tarefas com outra arquitetura, consulte a documentação da sua estrutura de eleição.

Automatizar o Microsoft Edge

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

  1. Inicia uma sessão do Microsoft Edge.
  2. Instrui o Microsoft Edge a aceder ao Bing.
  3. Procura "WebDriver".
  4. Fica suspenso durante alguns segundos para que possa ver os resultados.

Para começar a automatizar o Microsoft Edge com o WebDriver, copie e cole o fragmento de código para o 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();
            }
        }
    }
}

Gerir e configurar o serviço Microsoft Edge WebDriver

Quando 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 comunica. O processo do Microsoft Edge WebDriver é fechado quando chama o EdgeDriver método do Quit objeto. Permitir que cada EdgeDriver objeto faça a gestão do seu próprio processo de controlador pode ser ineficiente se tiver muitos testes, uma vez que cada teste tem de aguardar pelo início de um novo processo de controlador. Em vez disso, pode criar um único processo do Microsoft Edge WebDriver e, em seguida, reutilizá-lo para vários testes.

O Selenium utiliza a EdgeDriverService classe para gerir um processo do Microsoft Edge WebDriver. Pode criar uma EdgeDriverService vez antes de executar os testes e, em seguida, transmitir este EdgeDriverService objeto ao EdgeDriver construtor ao criar um novo EdgeDriver objeto. Quando transmite um EdgeDriverService para o EdgeDriver construtor, o EdgeDriver objeto utilizará este EdgeDriverService, em vez de criar um novo.

Também pode utilizar EdgeDriverService para configurar opções de linha de comandos para o processo do Microsoft Edge WebDriver, conforme mostrado abaixo.

O fragmento seguinte cria um novo EdgeDriverService e ativa a saída do registo verboso:

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

var driver = new EdgeDriver(service);

Configurar Opções do Microsoft Edge

Pode transmitir um EdgeOptions objeto ao EdgeDriver construtor para configurar opções adicionais para o processo do browser Microsoft Edge. A secção seguinte mostra como utilizar EdgeOptions para alguns cenários comuns. Para obter uma lista completa das opções suportadas, veja Capacidades e EdgeOptions.

Escolher Binários específicos do browser

Pode iniciar uma sessão do WebDriver com binários específicos do Microsoft Edge. Por exemplo, pode executar testes com os canais de pré-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);
Transmitir argumentos de linha de comandos adicionais

Pode utilizar EdgeOptions para configurar argumentos de linha de comandos que serão transmitidos para o processo do browser Microsoft Edge quando uma sessão é criada. Por exemplo, pode configurar o browser 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 utilizar o Docker, execute o seguinte comando para transferir 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, veja o contentor msedgedriver no Docker Hub.

Application Guard

Os sites fidedignos que utilizam Microsoft Defender Application Guard podem ser automatizados com o Microsoft Edge WebDriver. Microsoft Defender Application Guard também se chama Application Guard, para abreviar.

Os sites não fidedignos que utilizam Application Guard não podem ser automatizados ou manipulados com o Microsoft Edge WebDriver. Application Guard inicia sites não fidedignos num contentor e este contentor não expõe a porta de depuração remota de que o Microsoft Edge WebDriver precisa para comunicar com o site.

O administrador da sua empresa define o que são sites fidedignos, incluindo recursos na cloud e redes internas. Os sites que não estão na lista de sites fidedignos são considerados não fidedignos. O Microsoft Edge WebDriver pode automatizar as janelas InPrivate e os sites na lista de sites fidedignos.

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

Optar ativamente por não participar na recolha de dados de diagnóstico

Por predefinição, o Microsoft Edge WebDriver envia dados de diagnóstico, como a status do comando New Session WebDriver para a Microsoft. Para desativar a recolha de dados de diagnóstico para o Microsoft Edge WebDriver, defina a variável de MSEDGEDRIVER_TELEMETRY_OPTOUT ambiente como 1. Para obter mais informações sobre os dados que o Microsoft Edge WebDriver recolhe, consulte Microsoft Edge WebDriver no Documento Técnico de Privacidade do Microsoft Edge.

Microsoft WebDriver legado para EdgeHTML

O Microsoft WebDriver é a implementação legada do WebDriver para o Microsoft Edge baseado em EdgeHTML. O Microsoft WebDriver foi distribuído como um componente opcional do Windows, porque o Microsoft Edge (EdgeHTML) legado foi atualizado com o SO. O Microsoft WebDriver não é compatível com as versões mais recentes e baseadas em Chromium do Microsoft Edge. O Microsoft WebDriver ainda está disponível para programadores que escreveram testes baseados no WebDriver para aplicações UWP, uma vez que estes dependem do EdgeHTML, mas o Microsoft WebDriver já não é recomendado.

Consulte WebDriver (EdgeHTML).

Solução de problemas

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

Política de Disponibilidade das Ferramentas de Programação

Se o seu administrador de TI tiver definido a política DeveloperToolsAvailability como 2, o Microsoft Edge WebDriver está impedido de conduzir o Microsoft Edge, porque o controlador utiliza o Microsoft Edge DevTools. Para automatizar o Microsoft Edge, certifique-se de que a política DeveloperToolsAvailability está definida como 0 ou 1.

Utilizar o modelo do Visual Studio

Se estiver a utilizar o modelo do Microsoft Edge WebDriver fornecido com o Visual Studio, que cria um projeto de teste simples, certifique-se de que fez o seguinte:

  • Transfira o Microsoft Edge WebDriver e certifique-se de que está disponível no PATH.
  • Adicione a arquitetura Do WebDriver (como o pacote NuGet Selenium.WebDriver ) ao projeto.

Depois de efetuar estes passos, o teste de exemplo que navega para o Bing deve ser concluído com êxito.

Erro devido ao Selenium Tools para Microsoft Edge

Se 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)', consulte Atualizar do Selenium 3 para o Selenium 4 abaixo.

Atualizar do Selenium 3 para o Selenium 4

Se utilizou o Selenium Tools para Microsoft Edge para adicionar suporte do Microsoft Edge aos testes do browser Selenium 3, atualize os seus testes para o Selenium 4, da seguinte forma:

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

  2. Atualize os seus testes para utilizar as classes incorporadas EdgeDriver e relacionadas fornecidas pelo Selenium 4. Tem de atualizar os testes selenium 3 existentes para o Selenium 4. Para saber mais sobre como atualizar para o Selenium 4, consulte Atualizar para o Selenium 4.

  3. Remova todas as utilizações da EdgeOptions.UseChromium propriedade. Esta propriedade já não existe no Selenium 4, porque o Selenium 4 suporta apenas o Microsoft Edge (Chromium motor de browser).

O Selenium 3 não é suportado

Para utilizar o WebDriver para automatizar o Microsoft Edge, se utilizar o Selenium, certifique-se de que está a utilizar o Selenium 4. O Selenium 3 não é suportado.

Todos os novos projetos que utilizam o Selenium têm de utilizar o Selenium 4. Para utilizar o WebDriver para automatizar o Microsoft Edge, se utilizar o Selenium, certifique-se de que está a utilizar o Selenium 4. O Selenium 3 já não é suportado.

As Ferramentas do Selenium para o Microsoft Edge já não são utilizadas

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

Não utilize o Selenium 4 com o Selenium Tools para o Microsoft Edge, porque o Selenium 4 já tem suporte incorporado para o Microsoft Edge. Se tentar utilizar as Ferramentas do Selenium para o Microsoft Edge, quando tenta criar uma nova EdgeDriver instância, obtém o seguinte erro: System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)'. Se estiver a utilizar o Selenium 4 e receber este erro, remova-o Microsoft.Edge.SeleniumTools do projeto e certifique-se de que está a utilizar as classes e EdgeDriver oficiais EdgeOptions do OpenQA.Selenium.Edge espaço de nomes.

Consulte também