Usar WebDriver para automatizar Microsoft Edge
WebDriver permite automatizar Microsoft Edge simulando la interacción del usuario. Las pruebas que usan WebDriver tienen algunas ventajas sobre las pruebas unitarias de JavaScript que se ejecutan en el explorador:
WebDriver accede a la funcionalidad y a la información que no está disponible para JavaScript que se ejecuta en exploradores.
WebDriver simula eventos de usuario o eventos de nivel de sistema operativo de forma más precisa que las pruebas unitarias de JavaScript.
WebDriver administra varias ventanas, pestañas y páginas web en una única sesión de prueba.
WebDriver ejecuta varias sesiones de Microsoft Edge en una máquina específica.
En este artículo se proporcionan ejemplos de código sin procesar y pruebas no completas. Este artículo no proporciona un procedimiento completo para empezar a trabajar con Selenium WebDriver, pero solo cubre las partes específicas de Microsoft Edge del proceso. Esto incluye la obtención de Microsoft Edge WebDriver y la configuración de opciones específicas de Microsoft Edge en el código.
Relación entre WebDriver y otro software
Para automatizar Microsoft Edge con WebDriver para simular la interacción del usuario, necesita tres componentes:
- Microsoft Edge.
- Microsoft Edge WebDriver.
- Marco de pruebas de WebDriver.
La relación funcional entre estos componentes es la siguiente:
Tecnología | Rol |
---|---|
WebDriver | Un estándar W3C para un protocolo de conexión independiente de la plataforma y del lenguaje. Este protocolo permite que los programas fuera de proceso indiquen de forma remota el comportamiento de los exploradores web. |
WebDriver de Microsoft Edge | Implementación de Microsoft del protocolo WebDriver específicamente para Microsoft Edge. Los autores de pruebas escriben pruebas que usan comandos de WebDriver que Recibe Microsoft Edge WebDriver. A continuación, Microsoft Edge WebDriver es responsable de comunicar ese comando al explorador. |
Un marco de prueba de WebDriver | Los autores de pruebas usan un marco de pruebas para escribir pruebas de un extremo a otro y automatizar exploradores. Proporciona una interfaz específica del lenguaje que traduce el código en comandos que se envían a Microsoft Edge WebDriver. Los marcos de pruebas de WebDriver existen para todas las plataformas y lenguajes principales. Uno de estos marcos es Selenium WebDriver. |
Controlador de Internet Explorer | Una implementación de código abierto del protocolo WebDriver específicamente para Internet Explorer. Para ejecutar pruebas heredadas de un extremo a otro para el modo Internet Explorer, se recomienda usar el controlador de Internet Explorer. |
Microsoft WebDriver (heredado) | Controlador anterior específico del explorador para Microsoft Edge (EdgeHTML), que también se conoce como Microsoft Edge (versión anterior). |
En las secciones siguientes se describe cómo empezar a trabajar con WebDriver para Microsoft Edge.
Descargar WebDriver de Microsoft Edge
Para empezar a escribir pruebas automatizadas, asegúrese de que la versión de Microsoft Edge WebDriver que instale coincida con la versión de Microsoft Edge. Las tres primeras partes del número de versión de cuatro partes deben coincidir.
Descargue e instale una versión de Microsoft Edge WebDriver que coincida con la versión del explorador, como se indica a continuación:
Vaya a
edge://settings/help
y anote la versión de Microsoft Edge, un número de cuatro partes:Vaya a Microsoft Edge WebDriver.
En la sección Descargas de la página, haga clic en un botón de plataforma (por ejemplo , x64) en un número de versión que coincida con el número de versión de Microsoft Edge:
Las tres primeras partes del número de versión de cuatro partes deben coincidir entre Microsoft Edge y Microsoft Edge WebDriver. Por ejemplo, las siguientes versiones de Microsoft Edge y Microsoft Edge WebDriver funcionarán conjuntamente, ya que los tres primeros números son los mismos:
- 128.0.2739.79
- 128.0.2739.84
Para descargar versiones anteriores, haga clic en el botón Ir al directorio completo debajo de la sección Versiones recientes .
Una vez completada la descarga, extraiga el
msedgedriver
archivo ejecutable en la ubicación que prefiera. Agregue la carpeta donde se encuentra el ejecutable a laPATH
variable de entorno.
Debe instalar un controlador de explorador (Microsoft Edge WebDriver) y un marco de pruebas de WebDriver (como Selenium WebDriver), como se describe en Elegir un marco de pruebas de WebDriver a continuación. Estos son componentes independientes.
Elección de un marco de pruebas de WebDriver
Después de descargar Microsoft Edge WebDriver, el último componente que debe descargar es un marco de pruebas de WebDriver. Los autores de pruebas usan marcos de pruebas de WebDriver para escribir pruebas de un extremo a otro y automatizar exploradores. Un marco de pruebas de WebDriver proporciona una interfaz específica del lenguaje que traduce el código en comandos que Microsoft Edge WebDriver ejecuta en Microsoft Edge. Existen marcos de prueba de WebDriver para todas las plataformas y lenguajes principales, como Python, Java, C#, Ruby y JavaScript.
Microsoft Edge WebDriver se puede usar con cualquier marco de WebDriver. En este artículo se proporcionan instrucciones para usar el marco Delenium WebDriver, pero puede usar cualquier biblioteca, marco y lenguaje de programación que admita WebDriver.
Selenium WebDriver es una implementación popular de un marco de Trabajo de WebDriver. Selenium es una biblioteca de automatización entre exploradores independiente del lenguaje y independiente del marco de pruebas. En este artículo se usa Selenium WebDriver solo como ejemplo ilustrativo y porque satisface las necesidades de la mayoría de los usuarios. Si usa Selenium para automatizar Microsoft Edge, debe usar Selenium 4; Selenium 3 ya no es compatible.
Para realizar las mismas tareas mediante un marco de pruebas de WebDriver distinto de Selenium WebDriver, consulte la documentación oficial del marco de trabajo que prefiera.
Uso de Selenium WebDriver
Un posible marco de WebDriver que puede usar es Selenium WebDriver, que forma parte del conjunto de herramientas Selenium. Selenium WebDriver es un marco de pruebas de código abierto que se puede usar en cualquier plataforma y proporciona enlaces de lenguaje para Java, Python 3, C#, Ruby y JavaScript.
Si usa Selenium para automatizar Microsoft Edge, debe usar Selenium 4; Selenium 3 ya no es compatible.
Para obtener instrucciones detalladas sobre la instalación de Selenium para su entorno de desarrollo y lenguaje preferido, vea la documentación de Selenium sobre la instalación de una biblioteca de Selenium.
Automatización de Microsoft Edge con WebDriver
Para automatizar un explorador mediante WebDriver, primero debe iniciar una sesión de WebDriver mediante un marco de pruebas de WebDriver. Una sesión de WebDriver es una única instancia en ejecución de un explorador que se controla mediante comandos de WebDriver.
Inicie una sesión de WebDriver para iniciar una nueva instancia del explorador. La instancia del explorador iniciada permanece abierta hasta que se cierra la sesión de WebDriver.
La siguiente sección le guiará por el uso de Selenium 4 para iniciar una sesión de WebDriver con Microsoft Edge.
Nota
En este artículo se proporcionan instrucciones para usar el marco Delenium WebDriver, pero puede usar cualquier biblioteca, marco y lenguaje de programación que admita WebDriver. Para realizar las mismas tareas con otro marco, consulte la documentación del marco de trabajo que prefiera.
Automatización de Microsoft Edge
Selenium usa la EdgeDriver
clase para administrar una sesión de Microsoft Edge. El código siguiente:
- Inicia una sesión de Microsoft Edge.
- Indica a Microsoft Edge que vaya a Bing.
- Busca "WebDriver".
- Se suspende durante unos segundos para que pueda ver los resultados.
Para empezar a automatizar Microsoft Edge con WebDriver, copie y pegue el fragmento de código para su 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();
}
}
}
}
Administración y configuración del servicio WebDriver de Microsoft Edge
Al crear un nuevo EdgeDriver
objeto para iniciar una sesión de Microsoft Edge, Selenium inicia un nuevo proceso de WebDriver de Microsoft Edge con el que se comunica el EdgeDriver
objeto. El proceso de Microsoft Edge WebDriver se cierra al llamar al EdgeDriver
método del Quit
objeto. Permitir que cada EdgeDriver
objeto administre su propio proceso de controlador puede ser ineficaz si tiene muchas pruebas, ya que cada prueba debe esperar a que se inicie un nuevo proceso de controlador. En su lugar, puede crear un único proceso de WebDriver de Microsoft Edge y reutilizarlo para varias pruebas.
Selenium usa la EdgeDriverService
clase para administrar un proceso de WebDriver de Microsoft Edge. Puede crear una EdgeDriverService
vez antes de ejecutar las pruebas y, a continuación, pasar este EdgeDriverService
objeto al EdgeDriver
constructor al crear un nuevo EdgeDriver
objeto. Al pasar un EdgeDriverService
objeto al EdgeDriver
constructor, el EdgeDriver
objeto usará este EdgeDriverService
, en lugar de crear uno nuevo.
También puede usar EdgeDriverService
para configurar opciones de línea de comandos para el proceso de Microsoft Edge WebDriver, como se muestra a continuación.
El siguiente fragmento de código crea un nuevo EdgeDriverService
y habilita una salida de registro detallada:
var service = EdgeDriverService.CreateDefaultService();
service.UseVerboseLogging = true;
var driver = new EdgeDriver(service);
Configuración de opciones de Microsoft Edge
Puede pasar un EdgeOptions
objeto al EdgeDriver
constructor para configurar opciones adicionales para el proceso del explorador Microsoft Edge. En la sección siguiente se muestra cómo usar EdgeOptions
para algunos escenarios comunes. Para obtener una lista completa de las opciones que se admiten, consulte Funcionalidades y EdgeOptions.
Elegir archivos binarios de explorador específicos
Puede iniciar una sesión de WebDriver con archivos binarios específicos de Microsoft Edge. Por ejemplo, puede ejecutar pruebas mediante los canales de vista previa de Microsoft Edge, como Microsoft Edge Beta, Desarrollo o Canary.
var options = new EdgeOptions();
options.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe";
var driver = new EdgeDriver(options);
Pasar argumentos de línea de comandos adicionales
Puede usar EdgeOptions
para configurar argumentos de línea de comandos que se pasarán al proceso del explorador Microsoft Edge cuando se cree una sesión. Por ejemplo, puede configurar el explorador para que se ejecute en modo sin cabeza.
var options = new EdgeOptions();
options.AddArgument("headless");
var driver = new EdgeDriver(options);
Otras opciones de instalación de WebDriver
Docker
Si usa Docker, ejecute el siguiente comando para descargar una imagen preconfigurada que tenga Microsoft Edge y Microsoft Edge WebDriver preinstalados.
docker run -d -p 9515:9515 mcr.microsoft.com/msedge/msedgedriver
Para obtener más información, consulte el contenedor msedgedriver en Docker Hub.
Protección de aplicaciones
Los sitios de confianza que usan Protección de aplicaciones de Microsoft Defender se pueden automatizar mediante Microsoft Edge WebDriver. Protección de aplicaciones de Microsoft Defender también se denomina Protección de aplicaciones, para abreviar.
Los sitios que no son de confianza que usan Protección de aplicaciones no se pueden automatizar ni manipular mediante Microsoft Edge WebDriver. Protección de aplicaciones inicia sitios que no son de confianza en un contenedor y este contenedor no expone el puerto de depuración remota que Microsoft Edge WebDriver necesita para comunicarse con el sitio.
El administrador de empresa define qué son sitios de confianza, incluidos los recursos en la nube y las redes internas. Los sitios que no están en la lista de sitios de confianza se consideran que no son de confianza. Microsoft Edge WebDriver puede automatizar las ventanas de InPrivate y los sitios de la lista de sitios de confianza.
Para obtener más información sobre Protección de aplicaciones, consulte:
- Compatibilidad con Microsoft Edge para Protección de aplicaciones de Microsoft Defender.
- Protección de aplicaciones de Microsoft Defender información general.
No participar en la recopilación de datos de diagnóstico
De forma predeterminada, Microsoft Edge WebDriver envía datos de diagnóstico, como el estado del comando New Session WebDriver a Microsoft. Para desactivar la recopilación de datos de diagnóstico para Microsoft Edge WebDriver, establezca la variable 1
de MSEDGEDRIVER_TELEMETRY_OPTOUT
entorno en . Para obtener más información sobre los datos que Recopila Microsoft Edge WebDriver, vea Microsoft Edge WebDriver in Microsoft Edge Privacy Whitepaper.
Microsoft WebDriver heredado para EdgeHTML
Microsoft WebDriver es la implementación heredada de WebDriver para Microsoft Edge basado en EdgeHTML. Microsoft WebDriver se distribuyó como un componente opcional de Windows, ya que Microsoft Edge (EdgeHTML) heredado se actualizó con el sistema operativo. Microsoft WebDriver no es compatible con las versiones más recientes basadas en Chromium de Microsoft Edge. Microsoft WebDriver sigue estando disponible para los desarrolladores que han escrito pruebas basadas en WebDriver para aplicaciones para UWP, ya que se basan en EdgeHTML, pero Ya no se recomienda Microsoft WebDriver.
Solución de problemas
Estas son consideraciones de solución de problemas al usar WebDriver para automatizar Microsoft Edge.
Directiva de disponibilidad de Herramientas de desarrollo
Si el administrador de TI ha establecido la directiva DeveloperToolsAvailability en2
, Microsoft Edge WebDriver no podrá conducir Microsoft Edge, ya que el controlador usa Microsoft Edge DevTools. Para automatizar Microsoft Edge, asegúrese de que la directiva DeveloperToolsAvailability está establecida en 0
o 1
.
Uso de la plantilla de Visual Studio
Si usa la plantilla WebDriver de Microsoft Edge que se proporciona con Visual Studio, que crea un proyecto de prueba simple, asegúrese de que ha hecho lo siguiente:
- Descargue Microsoft Edge WebDriver y asegúrese de que está disponible en la ruta de acceso.
- Agregue el marco de Trabajo de WebDriver (como el paquete NuGet Selenium.WebDriver ) al proyecto.
Después de realizar estos pasos, la prueba de ejemplo que navega a Bing debe completarse correctamente.
Error debido a Las herramientas de Selenium para Microsoft Edge
Si recibe el siguiente error al intentar crear una nueva EdgeDriver
instancia: System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)'
, consulte Actualización de Selenium 3 a Selenium 4 a continuación.
Actualizar de Selenium 3 a Selenium 4
Si usó Selenium Tools para Microsoft Edge para agregar compatibilidad con Microsoft Edge a las pruebas del explorador Selenium 3, actualice las pruebas a Selenium 4, como se indica a continuación:
Quite Selenium Tools for Microsoft Edge del proyecto.
Actualice las pruebas para usar las clases integradas
EdgeDriver
y relacionadas que proporciona Selenium 4 en su lugar. Usted debe actualizar cualquier selenio 3 pruebas existentes a Selenium 4. Para obtener más información sobre la actualización a Selenium 4, vea Actualizar a Selenium 4.Quite todos los usos de la
EdgeOptions.UseChromium
propiedad . Esta propiedad ya no existe en Selenium 4, ya que Selenium 4 solo admite Microsoft Edge (Chromium motor de explorador).
No se admite Selenium 3
Para usar WebDriver para automatizar Microsoft Edge, si usa Selenium, asegúrese de que usa Selenium 4. No se admite Selenium 3.
Todos los proyectos nuevos que usan Selenium deben usar Selenium 4. Para usar WebDriver para automatizar Microsoft Edge, si usa Selenium, asegúrese de que usa Selenium 4. Selenium 3 ya no es compatible.
Selenium Tools for Microsoft Edge ya no se usa
Selenium 4 no requiere Selenium Tools para Microsoft Edge. Selenium Tools para Microsoft Edge era solo para Selenium 3.
No use Selenium 4 con Selenium Tools para Microsoft Edge, ya que Selenium 4 ya tiene compatibilidad integrada con Microsoft Edge. Si intenta usar Selenium Tools para Microsoft Edge, al intentar crear una nueva EdgeDriver
instancia, obtendrá el siguiente error: System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)'
. Si usa Selenium 4 y obtiene este error, quite Microsoft.Edge.SeleniumTools
del proyecto y asegúrese de que usa las clases oficiales EdgeOptions
y EdgeDriver
del OpenQA.Selenium.Edge
espacio de nombres.
Consulte también
- El proyecto de automatización del explorador Selenium : información sobre WebDriver en el contexto de Selenium y cómo escribir pruebas automatizadas de WebDriver mediante Selenium.
- Paquete NuGet Selenium.WebDriver .
- Póngase en contacto con el equipo de Microsoft Edge WebDriver para enviar comentarios sobre el uso de WebDriver, marcos de prueba de WebDriver (como Selenium) y Microsoft Edge.