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 del explorador, como se indica a continuación:

  1. Vaya a edge://settings/help y anote la versión de Microsoft Edge:

    Número de compilación de Microsoft Edge el 15 de abril de 2021

  2. Vaya a Microsoft Edge WebDriver.

  3. En la sección Obtener la versión más reciente de la página, seleccione una plataforma en el canal que coincida con el número de versión de Microsoft Edge:

    La sección Obtener la versión más reciente de la página web de Microsoft Edge WebDriver

  4. 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 la PATH 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:

  1. Inicia una sesión de Microsoft Edge.
  2. Indica a Microsoft Edge que vaya a Bing.
  3. Busca "WebDriver".
  4. 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:

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 1de MSEDGEDRIVER_TELEMETRY_OPTOUT entorno en . Para obtener más información sobre los datos que Recopila Microsoft Edge WebDriver, consulte la Notas del producto privacidad de Microsoft Edge.

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.

Vea WebDriver (EdgeHTML).

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:

  1. Quite Selenium Tools for Microsoft Edge del proyecto.

  2. 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.

  3. 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.

Ver también