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:
edge://settings/help
Acesse e observe sua versão do Microsoft Edge:Acesse o Microsoft Edge WebDriver.
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:
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 dePATH
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:
- Inicia uma sessão do Microsoft Edge.
- Instrui o Microsoft Edge a ir para o Bing.
- Pesquisa por "WebDriver".
- 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:
- Suporte do Microsoft Edge para Microsoft Defender Application Guard.
- Microsoft Defender Application Guard visão geral.
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:
Remova as Ferramentas de Selenium para o Microsoft Edge do seu projeto.
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.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 EdgeOptions
EdgeDriver
do OpenQA.Selenium.Edge
namespace.
Consulte também
- O Selenium Browser Automation Project – Informações sobre o WebDriver no contexto do Selenium e como gravar testes automatizados do WebDriver usando o Selenium.
- Pacote NuGet do Selenium.WebDriver.
- Entre em contato com a equipe do Microsoft Edge WebDriver para enviar comentários sobre como usar o WebDriver, as estruturas de teste do WebDriver (como o Selenium) e o Microsoft Edge.