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
launchAppalaunchChromeApppara sesiones de Chrome WebDriver
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.