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

148
Vistas
Recibo este error: Textfield no es un constructor

Sé que hay muchas preguntas en Stackoverflow sobre este error, pero después de leer algunas de ellas (+-12 preguntas) no obtengo nada.

Mi contexto es que estoy tratando de construir un paquete npm (mi primer paquete); en este Paquete hay algunas clases que ayudan a escribir Cypress más fácilmente.

Esta es una de las clases que quiero cargar a través de un paquete npm:

 // node_modules/prueba-para-oskar/src/Helpers/Fields/TextField.js class TextField { /** * * @param {string} value * @param {string} selector * @param {object} options */ type(value, selector, options) { this[options.widget](value,selector); } /** * * @param {string} value * @param {string} selector */ ckeditor(value, selector){ cy.ckeditor(value, selector) } noCkeditor(value, selector){ cy.get(selector).type(value); } } module.exports = TextField;

Este es mi paquete index.js

 // node_modules/prueba-para-oskar/src/index.js const TextField = require('./Helpers/Fields/TextField'); module.exports = { TextField }

Y este es mi objeto de página de ciprés.

 // cypress/e2e/pages/ArticlePage.js // If I load the file as class that are in the same folder than Cypress // (not mpn package) they works without problems. import { Property } from "../../support/Helpers/lib/Property"; import { Submit } from "../../support/Helpers/lib/Submit"; import { FileField } from "../../support/Helpers/Fields/FileField"; import { TextAreaField } from "../../support/Helpers/Fields/TextAreaField"; // import { TextField } from "../../support/Helpers/Fields/TextField"; import { TextField } from "prueba-para-oskar"; export default class ArticlePage { article_path = "/node/add/article"; tagInput = 'input[data-drupal-selector="edit-field-tags-target-id"]'; submitButton = 'input[data-drupal-selector="edit-submit"]'; constructor() { this.Property = new Property(); this.FileField = new FileField(); this.TextAreaField = new TextAreaField(); this.TextField = new TextField(); this.Submit = new Submit(); } userCanAccesArticlePage() { cy.visit(this.article_path, { failOnStatusCode: true }); } havePermissionsToSeeNodeAddArticle() { cy.location("pathname").should("eq", this.article_path); } clickSubmitButttom() { cy.get(this.submitButton).click(); } }

El error aparece cuando intento cargar TextField dentro de ArticlePage.js

¿Alguna idea de cómo cargar la clase del npm pagacke a la clase ObjecPage?

Gracias.

about 4 years ago · Santiago Gelvez
3 Respuestas
Responde la pregunta

0

Consulte la respuesta a esta pregunta.

module.exports vs. exportación predeterminada en Node.js y ES6

Espero eso ayude :)

about 4 years ago · Santiago Gelvez Denunciar

0

Después de dar un paseo y leer de nuevo el enlace de Aleksa Djukic, he resuelto mi problema de esta manera:

 // node_modules/prueba-para-oskar/src/index.js module.exports.TextField = require('./Helpers/Fields/TextField');
 // cypress/e2e/pages/ArticlePage.js // Instead of import I use require. const TextField = require("prueba-para-oskar").TextField;
 // cypress/support/step_definitions/articlePage.js // Instead of import I use require. const ArticlePage = require('../../e2e/pages/ArticlePage'); // I have to inicialice the class const articlePage = new ArticlePage();
about 4 years ago · Santiago Gelvez Denunciar

0

En un paquete npm, generalmente el index,js está en la raíz del paquete, no en /src .

Prueba de esta manera

 // node_modules/prueba-para-oskar/index.js const TextField = require('./src/Helpers/Fields/TextField'); module.exports = { TextField }

También (alternativamente) intente agregar una entrada main a package.json

Por ejemplo, mire node_modules/core-util-is/package.json

 { "name": "core-util-is", "version": "1.0.2", "description": "The `util.is*` functions introduced in Node v0.12.", "main": "lib/util.js", "repository": { ...

por lo que su paquete.json

 { "name": "prueba-para-oskar", "version": "1.0.0", "main": "src/index.js", "scripts": { ...
about 4 years ago · Santiago Gelvez 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