Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

242
Vistas
¿Cómo cargar manualmente un archivo con ciprés?

Sé que ya hay un complemento para hacer esto en Cypress. Sin embargo, usarlo con archivos jar solo corrompe el archivo y, por lo tanto, es inútil en mi caso de uso. Esto es realmente extraño porque lo probé con todas las combinaciones de codificación y todavía no funciona. Sin embargo, funciona perfectamente bien con otros tipos de archivos.

Este es el código que estoy usando (funciona excepto con archivos jar).

 cy.fixture('test.jar', 'binary') .then(Cypress.Blob.binaryStringToBlob) .then(fileContent => { cy.get('[data-cy="dropzone"]') .contains('Jar file') .parent() .find('div') .attachFile({ fileContent, filePath: 'test.jar', mimeType: 'application/java-archive', encoding: 'binary', lastModified: new Date().getTime(), subjectType: 'drag-n-drop', force: true }); });

Sé que puede realizar solicitudes de publicación en ciprés. ¿Es posible realizar la carga del archivo con él después de hacer clic en el elemento de la zona de caída?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

cypress-file-upload carece de soporte explícito para la extensión .jar , esta es la lista actual de extensiones compatibles

 const FILE_EXTENSION = Object.freeze({ JSON: 'json', JS: 'js', COFFEE: 'coffee', HTML: 'html', TXT: 'txt', CSV: 'csv', PNG: 'png', JPG: 'jpg', JPEG: 'jpeg', GIF: 'gif', TIF: 'tif', TIFF: 'tiff', ZIP: 'zip', PDF: 'pdf', VCF: 'vcf', SVG: 'svg', XLS: 'xls', XLSX: 'xlsx', DOC: 'doc', DOCX: 'docx', MP3: 'mp3' });

Por lo tanto, la codificación predeterminada utilizada es utf8 . Para pasar explícitamente la codificación como una opción, debe usar el modo sin formato

 cy.fixture('sample.jar', 'binary') .then(Cypress.Blob.binaryStringToBlob) .then(fileContent => { cy.get('[data-cy="dropzone"]').attachFile({ fileContent, filePath: 'sample.jar', mimeType: 'application/java-archive', encoding: 'binary', lastModified: new Date().getTime(), }, { subjectType: 'drag-n-drop', force: true }); });

Tenga en cuenta que debe probar ambos valores subjectType, ya que desencadenan diferentes eventos.

Aquí está el código que muestra qué eventos se activan con la opción de force

 export const EVENTS_BY_SUBJECT_TYPE: Record<Required<HtmlSubjectType>, string[]> = { [HtmlSubjectType.input]: ['change'], /** * @see https://developer.mozilla.org/en-US/docs/Web/API/DragEvent */ [HtmlSubjectType.dragAndDrop]: ['dragstart', 'drag', 'dragenter', 'drop', 'dragleave', 'dragend'], };

Si aún no obtiene ninguna acción, deberá desencadenar eventos manualmente, por ejemplo, encadenar .trigger('change') después de attachFile() . Idealmente, puede averiguar qué eventos del código fuente de la aplicación.


La solución dada por abramenal es incorrecta, esta es la parte de cypress-file-upload que maneja el parámetro de opciones. Si pasa el accesorio como una cadena, se ignora la codificación

 function getFixtureInfo(fixtureInput) { // Normal mode // fixture name and options passed separately. if (typeof fixtureInput === 'string') { return { filePath: fixtureInput, encoding: '', mimeType: '', fileName: getFileName(fixtureInput) }; } // Raw mode // If you pass an object, encoding can be specified return { filePath: fixtureInput.filePath, encoding: fixtureInput.encoding || '', mimeType: fixtureInput.mimeType || '', fileName: fixtureInput.fileName || getFileName(fixtureInput.filePath), fileContent: fixtureInput.fileContent, lastModified: fixtureInput.lastModified }; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda