Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

222
Views
¿Cómo evitar que el elemento se separe de los errores DOM?

Tenemos un problema de tiempo con cypress/jsf y dos PrimeFaces-Autocompleta. Nuestra entrada de instalación depende del elemento seleccionado. Cuando se selecciona un elemento, se envía una solicitud ajax y se actualiza el campo de la instalación. (ver ejemplo de código a continuación - xhtml)

Nuestra prueba de ciprés primero selecciona un elemento y luego quiere seleccionar una instalación. Sin embargo, el campo de entrada de la instalación no se puede borrar porque está separado del DOM. El mensaje de error es: "CypressError: se agotó el tiempo de reintento: cy.clear() falló porque este elemento está desconectado del DOM". Ya esperamos la petición ajax (con cy.route) pero el problema sigue dando. (vea el ejemplo de código a continuación - javascript)

¿Cómo podemos evitar errores de separación con campos de entrada dependientes?

 <!-- element --> <p:outputLabel id="elementLabel" for="element" value="#{i18n.element}" /> <p:autoComplete id="element" value="#{bean.selectedElement}" dropdown="true"completeMethod="#{bean.completeElement}" var="element" itemValue="#{element}" itemLabel="#{element}"> <p:ajax event="itemSelect" listener="#{bean.updateFacility()}" partialSubmit="true" process="@this" update="facility"/> </p:autoComplete> <!-- facility --> <p:outputLabel id="facilityLabel" for="facility" value="#{i18n.facility}" /> <p:autoComplete id="facility" value="#{bean.selectedFacility}" required="false" dropdown="true" completeMethod="#{bean.completeFacility}" var="facility" itemValue="#{facility}" itemLabel="#{facility}" > </p:autoComplete>

JavaScript:

 cy.route({ method: 'POST', url: '/app/dummy.xhtml' }).as('request') cy.selectOptionLoadingAlias('#element_input', '#element_1', '@request') cy.selectOptionLoadingAlias('#facility_input', '#facility_1', '@request') Cypress.Commands.add("selectOptionLoadingAlias", (inputField, selectOption, alias) => { cy.get(inputField).should('be.visible').clear().type('Dummy 1') cy.wait(alias).then((xhr) => { // we checked that xhr is the correct request (update for element/facility) cy.get(selectOption).click() cy.get(selectOption).should('not.be.visible') }) })
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Intente corregir a continuación la sección clara, el truco del clic debería asegurar que el elemento no se separe:

 cy.get(inputField).click({force:true}).clear().type('Dummy 1');
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!