Saltar al contenido principal

Módulos

WebdriverIO publica varios módulos en NPM y otros registros que puedes usar para construir tu propio marco de automatización. Consulta más documentación sobre los tipos de configuración de WebdriverIO aquí.

webdriver y devtools​

Los paquetes de protocolo (webdriver y devtools) exponen una clase con las siguientes funciones estáticas adjuntas que te permiten iniciar sesiones:

newSession(options, modifier, userPrototype, customCommandWrapper)​

Inicia una nueva sesión con capacidades específicas. Basado en la respuesta de la sesión, se proporcionarán comandos de diferentes protocolos.

Paramaters​
  • options: Opciones de WebDriver
  • modifier: función que permite modificar la instancia del cliente antes de ser devuelta
  • userPrototype: objeto de propiedades que permite extender el prototipo de la instancia
  • customCommandWrapper: función que permite envolver funcionalidad alrededor de las llamadas a funciones
Returns​
Example​
const client = await WebDriver.newSession({
capabilities: { browserName: 'chrome' }
})

attachToSession(attachInstance, modifier, userPrototype, customCommandWrapper)​

Se conecta a una sesión de WebDriver o DevTools en ejecución.

Paramaters​
  • attachInstance: instancia a la que conectar una sesión o al menos un objeto con una propiedad sessionId (p. ej. { sessionId: 'xxx' })
  • modifier: función que permite modificar la instancia del cliente antes de ser devuelta
  • userPrototype: objeto de propiedades que permite extender el prototipo de la instancia
  • customCommandWrapper: función que permite envolver funcionalidad alrededor de las llamadas a funciones
Returns​
Example​
const client = await WebDriver.newSession({...})
const clonedClient = await WebDriver.attachToSession(client)

reloadSession(instance)​

Recarga una sesión dada la instancia proporcionada.

Paramaters​
  • instance: instancia del paquete para recargar
Example​
const client = await WebDriver.newSession({...})
await WebDriver.reloadSession(client)

webdriverio​

De manera similar a los paquetes de protocolo (webdriver y devtools), también puedes usar las APIs del paquete WebdriverIO para administrar sesiones. Las APIs se pueden importar usando import { remote, attach, multiremote } from 'webdriverio' y contienen la siguiente funcionalidad:

remote(options, modifier)​

Inicia una sesión de WebdriverIO. La instancia contiene todos los comandos como el paquete de protocolo pero con funciones de orden superior adicionales, consulta documentación de API.

Paramaters​
  • options: Opciones de WebdriverIO
  • modifier: función que permite modificar la instancia del cliente antes de ser devuelta
Returns​
Example​
import { remote } from 'webdriverio'

const browser = await remote({
capabilities: { browserName: 'chrome' }
})

attach(attachOptions)​

Se conecta a una sesión de WebdriverIO en ejecución.

Paramaters​
  • attachOptions: instancia a la que conectar una sesión o al menos un objeto con una propiedad sessionId (p. ej. { sessionId: 'xxx' })
Returns​
Example​
import { remote, attach } from 'webdriverio'

const browser = await remote({...})
const newBrowser = await attach(browser)

multiremote(multiremoteOptions)​

Inicia una instancia multiremote que te permite controlar múltiples sesiones dentro de una sola instancia. Consulta nuestros ejemplos de multiremote para casos de uso concretos.

Paramaters​
Returns​
Example​
import { multiremote } from 'webdriverio'

const matrix = await multiremote({
myChromeBrowser: {
capabilities: { browserName: 'chrome' }
},
myFirefoxBrowser: {
capabilities: { browserName: 'firefox' }
}
})
await matrix.url('http://json.org')
await matrix.getInstance('browserA').url('https://google.com')

console.log(await matrix.getTitle())
// returns ['Google', 'JSON']

@wdio/cli​

En lugar de llamar al comando wdio, también puedes incluir el ejecutor de pruebas como módulo y ejecutarlo en un entorno arbitrario. Para eso, necesitarás requerir el paquete @wdio/cli como módulo, de esta manera:

import Launcher from '@wdio/cli'

Después de eso, crea una instancia del lanzador y ejecuta la prueba.

Launcher(configPath, opts)​

El constructor de la clase Launcher espera la URL al archivo de configuración y un objeto opts con configuraciones que sobrescribirán las del archivo de configuración.

Paramaters​
  • configPath: ruta al archivo wdio.conf.js para ejecutar
  • opts: argumentos (<RunCommandArguments>) para sobrescribir valores del archivo de configuración
Example​
const wdio = new Launcher(
'/path/to/my/wdio.conf.js',
{ spec: '/path/to/a/single/spec.e2e.js' }
)

wdio.run().then((exitCode) => {
process.exit(exitCode)
}, (error) => {
console.error('Launcher failed to start the test', error.stacktrace)
process.exit(1)
})

El comando run devuelve una Promesa. Se resuelve si las pruebas se ejecutaron con éxito o fallaron, y se rechaza si el lanzador no pudo iniciar la ejecución de las pruebas.

@wdio/browser-runner​

Cuando ejecutas pruebas unitarias o de componentes usando el ejecutor de navegador de WebdriverIO, puedes importar utilidades de simulación para tus pruebas, p. ej.:

import { fn, spyOn, mock, unmock } from '@wdio/browser-runner'

Están disponibles las siguientes exportaciones con nombre:

fn​

Función simulada, ver más en la documentación oficial de Vitest.

spyOn​

Función espía, ver más en la documentación oficial de Vitest.

mock​

Método para simular un archivo o módulo de dependencia.

Paramaters​
  • moduleName: puede ser una ruta relativa al archivo que se simulará o un nombre de módulo.
  • factory: función para devolver el valor simulado (opcional)
Example​
mock('../src/constants.ts', () => ({
SOME_DEFAULT: 'mocked out'
}))

mock('lodash', (origModuleFactory) => {
const origModule = await origModuleFactory()
return {
...origModule,
pick: fn()
}
})

unmock​

Desimula la dependencia que está definida dentro del directorio de simulación manual (__mocks__).

Paramaters​
  • moduleName: nombre del módulo que se desimulará.
Example​
unmock('lodash')

Welcome! How can I help?

WebdriverIO AI Copilot