Saltar al contenido principal

De v5 a v6

Este tutorial es para personas que todavía están usando v5 de WebdriverIO y quieren migrar a v6 o a la última versión de WebdriverIO. Como se mencionó en nuestra publicación del blog de lanzamiento, los cambios para esta actualización de versión se pueden resumir de la siguiente manera:

  • consolidamos los parámetros para algunos comandos (por ejemplo, newWindow, react$, react$$, waitUntil, dragAndDrop, moveTo, waitForDisplayed, waitForEnabled, waitForExist) y movimos todos los parámetros opcionales a un solo objeto, por ejemplo:

    // v5
    browser.newWindow(
    'https://webdriver.io',
    'WebdriverIO window',
    'width=420,height=230,resizable,scrollbars=yes,status=1'
    )
    // v6
    browser.newWindow('https://webdriver.io', {
    windowName: 'WebdriverIO window',
    windowFeature: 'width=420,height=230,resizable,scrollbars=yes,status=1'
    })
  • las configuraciones para servicios se movieron a la lista de servicios, por ejemplo:

    // v5
    exports.config = {
    services: ['sauce'],
    sauceConnect: true,
    sauceConnectOpts: { foo: 'bar' },
    }
    // v6
    exports.config = {
    services: [['sauce', {
    sauceConnect: true,
    sauceConnectOpts: { foo: 'bar' }
    }]],
    }
  • algunas opciones de servicio fueron renombradas por motivos de simplificación

  • renombramos el comando launchApp a launchChromeApp para sesiones de Chrome WebDriver

información

Si estás usando WebdriverIO v4 o inferior, por favor actualiza primero a v5.

Aunque nos encantaría tener un proceso completamente automatizado para esto, la realidad es diferente. Cada uno tiene una configuración diferente. Cada paso debe verse como una guía y menos como una instrucción paso a paso. Si tienes problemas con la migración, no dudes en contactarnos.

Configuración​

Similar a otras migraciones, podemos usar el codemod de WebdriverIO. Para instalar el codemod, ejecuta:

npm install jscodeshift @wdio/codemod

Actualizar Dependencias de WebdriverIO​

Dado que todas las versiones de WebdriverIO están vinculadas entre sí, lo mejor es siempre actualizar a una etiqueta específica, por ejemplo, 6.12.0. Si decides actualizar directamente de v5 a v7, puedes omitir la etiqueta e instalar las últimas versiones de todos los paquetes. Para hacerlo, copiamos todas las dependencias relacionadas con WebdriverIO de nuestro package.json y las reinstalamos mediante:

npm i --save-dev @wdio/allure-reporter@6 @wdio/cli@6 @wdio/cucumber-framework@6 @wdio/local-runner@6 @wdio/spec-reporter@6 @wdio/sync@6 wdio-chromedriver-service@6 webdriverio@6

Normalmente, las dependencias de WebdriverIO son parte de las dependencias de desarrollo, aunque esto puede variar según tu proyecto. Después de esto, tu package.json y package-lock.json deberían estar actualizados. Nota: estas son dependencias de ejemplo, las tuyas pueden ser diferentes. Asegúrate de encontrar la última versión v6 disponible llamando, por ejemplo:

npm show webdriverio versions

Intenta instalar la última versión 6 disponible para todos los paquetes principales de WebdriverIO. Para paquetes de la comunidad, esto puede diferir de un paquete a otro. Aquí recomendamos verificar el registro de cambios para obtener información sobre qué versión sigue siendo compatible con v6.

Transformar Archivo de Configuración​

Un buen primer paso es comenzar con el archivo de configuración. Todos los cambios importantes se pueden resolver utilizando el codemod de forma completamente automática:

npx jscodeshift -t ./node_modules/@wdio/codemod/v6 ./wdio.conf.js
precaución

El codemod aún no admite proyectos TypeScript. Ver @webdriverio/codemod#10. Estamos trabajando para implementar soporte pronto. Si estás usando TypeScript, ¡por favor involúcrate!

Actualizar Archivos de Especificación y Objetos de Página​

Para actualizar todos los cambios de comandos, ejecuta el codemod en todos tus archivos e2e que contengan comandos de WebdriverIO, por ejemplo:

npx jscodeshift -t ./node_modules/@wdio/codemod/v6 ./e2e/*

¡Eso es todo! No se necesitan más cambios 🎉

Conclusión​

Esperamos que este tutorial te guíe un poco a través del proceso de migración a WebdriverIO v6. Recomendamos encarecidamente continuar actualizando a la última versión, dado que la actualización a v7 es trivial debido a casi ningún cambio importante. Por favor, consulta la guía de migración para actualizar a v7.

La comunidad continúa mejorando el codemod mientras lo prueba con varios equipos en diversas organizaciones. No dudes en reportar un problema si tienes comentarios o iniciar una discusión si tienes dificultades durante el proceso de migración.

Welcome! How can I help?

WebdriverIO AI Copilot