Nos gustaría usar un directorio de perfil de Chrome personalizado para nuestras pruebas de Cypress. La aplicación que estamos probando utiliza una base de datos Web SQL que debe cargarse en el navegador Chrome. Ya probamos este comando que debería ser un argumento de cromo válido .
launchOptions.args.push('--user-data-dir=/Users/testuser/dev/chrome')Nuestra configuración:
El código que probamos en nuestro index.js (carpeta de complementos):
const browserify = require('@cypress/browserify-preprocessor'); const cucumber = require('cypress-cucumber-preprocessor').default; const resolve = require('resolve'); module.exports = (on, config) => { const options = { ...browserify.defaultOptions, typescript: resolve.sync('typescript', { baseDir: config.projectRoot }), }; on('file:preprocessor', cucumber(options)); on('before:browser:launch', (browser = {}, launchOptions) => { // `args` is an array of all the arguments that will // be passed to browsers when it launches console.log(launchOptions.args) // print all current args launchOptions.args.push('--user-data-dir=/Users/testuser/dev/chrome') launchOptions.args.push('--auto-open-devtools-for-tabs') return launchOptions }) }; Parece que esto no funciona mientras el comando --auto-open-devtools-for-tabs funciona bien, pero el perfil personalizado no está cargado. ¿Es este un problema conocido? ¿O podemos depurar para ver qué está pasando?
actualización 24/9/2021
Veo que Cypress pasa el argumento a Chrome, pero Cypress anula la ruta del perfil de Chrome. Pasos para reproducir:
--user-data-dir como se mencionó anteriormentechrome://version/ en la barra de URL--user-data-dir=/Users/testuser/dev/chrome aparece en el panel Línea de comandos, pero también veo --user-data-dir=/Users/xxxxx/Library/Application Support/Cypress/cy/production/browsers/chrome-stable/interactive enumerado, y esa es la ruta de perfil que está utilizando CypressSegún este hilo, entiendo que así es como funciona Cypress https://github.com/cypress-io/cypress/issues/3671