Estoy tratando de usar la espera de nivel superior con WebdriverIO pero sigo obteniendo el siguiente error
[0-0] importar axios desde 'axios'; [0-0] ^^^^^^ [0-0] [0-0] SyntaxError: no se puede usar la declaración de importación fuera de un módulo [0-0] en Object.compileFunction (node:vm:352:18) [0 -0] en wrapSafe (nodo:interno/módulos/cjs/cargador:1031:15) [0-0] en Módulo._compile (nodo:interno/módulos/cjs/cargador:1065:27) [0-0] en Object.Module._extensions..js (nodo:interno/módulos/cjs/cargador:1153:10) [0-0] en Módulo.cargar (nodo:interno/módulos/cjs/cargador:981:32) [0- 0] en Function.Module._load (nodo:internal/modules/cjs/loader:822:12) [0-0] en ModuleWrap. (node:internal/modules/esm/translators:190:29) [0-0] en ModuleJob.run (node:internal/modules/esm/module_job:185:25) [0-0] en async Promise.all ( índice 0) [0-0] en async ESMLoader.import (node:internal/modules/esm/loader:281:24)
Si incluyo "tipo": "módulo" en el paquete.json obtengo el siguiente error
ERROR @wdio/config:ConfigParser: Error al cargar el archivo de configuración: /Users/anilp/custom-folder/experiments/wdio-mocha-sync/wdio.conf.js: require() of ES Module /Users/anilp/custom-folder /experiments/wdio-mocha-sync/wdio.conf.js de /Users/anilp/custom-folder/experiments/wdio-mocha-sync/node_modules/@wdio/config/build/lib/FileSystemPathService.js no compatible. wdio.conf.js se trata como un archivo de módulo ES, ya que es un archivo .js cuyo paquete principal más cercano contiene "tipo": "módulo" que declara todos los archivos .js en el alcance de ese paquete como módulos ES. En su lugar, cambie el nombre de wdio.conf.js para que termine en .cjs, cambie el código requerido para usar la importación dinámica () que está disponible en todos los módulos CommonJS, o cambie "tipo": "módulo" a "tipo": "commonjs" en / Users/anilp/custom-folder/experiments/wdio-mocha-sync/package.json para tratar todos los archivos .js como CommonJS (usando .mjs para todos los módulos ES en su lugar).
Marco: Mocha + WebdriverIO
import axios from 'axios'; // top-level await: Node >= v14.8.0 with ESM test file const tests = await new Promise(async (resolve) => { const response = await axios.get("https://api.github.com/users", { headers: { Accept: "application/vnd.github.v3+json" } }); resolve(response.data) }); describe('My Login application', () => { tests.forEach((d) => { it(`correctly print details of ${d.login} args`, function() { console.log(d); }); }); });He estado buscando lo mismo y encontré este PR https://github.com/webdriverio/webdriverio/pull/6812 . Parece que wdio aún no tiene soporte para la espera de nivel superior. Puede estar en la versión 8..