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:
Aceda a e anote a
edge://settings/help
sua versão do Microsoft Edge, um número de quatro partes:Aceda ao Microsoft Edge WebDriver.
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:
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 .
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 dePATH
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:
- Inicia uma sessão do Microsoft Edge.
- Instrui o Microsoft Edge a aceder ao Bing.
- Procura "WebDriver".
- 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:
- Suporte do Microsoft Edge para Microsoft Defender Application Guard.
- Microsoft Defender Application Guard descrição geral.
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:
Remova as Ferramentas do Selenium para o Microsoft Edge do seu projeto.
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.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
- Selenium Browser Automation Project – informações sobre o WebDriver no contexto do Selenium e como escrever testes automatizados do WebDriver com o Selenium.
- Pacote NuGet Selenium.WebDriver.
- Contacte a equipa do Microsoft Edge WebDriver para enviar feedback sobre como utilizar o WebDriver, as arquiteturas de teste do WebDriver (como o Selenium) e o Microsoft Edge.