Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

407
Visualizações
Pruebas de Cypress e2e: cómo obtener todos los elementos del menú desplegable dinámico y verificarlos con datos de prueba (más de 200 elementos)

Código HTML de los elementos desplegables

Escribí el código de esta manera, pero solo pude obtener hasta 13 elementos, después de eso no irá a los siguientes elementos. Pude ver los siguientes elementos cuando me desplacé hacia abajo en el menú desplegable y continúa... No estoy seguro de cómo funciona esto, pero creo que se debe al comportamiento de los enlaces en HTML.

Por favor, ¿alguien puede ayudar a obtener todos los elementos o alguna otra forma de probar esto en Cypress?

 cy.visit('https://dev.wholesoftmarket.com/account/signup') cy.get('span.ng-tns-c381-0').contains('Account Name').click() cy.wait(15000) cy.get('p-dropdownitem > li > div').each(($ele, i)=>{ cy.wrap($ele).invoke('text').then((text)=>{ cy.log(text) expect(text).to.equal(accoun_Data.dropdowntext1[i]) }) })
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Es un desplazamiento virtual, por lo que no puede obtener todos los elementos en la primera consulta. Parece que se cargan 13 a la vez.

Si tiene una entrada asociada, es posible que pueda .type() algún texto para filtrar la lista.

Solo necesitaría verificar el primer y el último elemento.

De lo contrario, la lista virtual debe desplazarse para cargar el resto.


Un ejemplo de trabajo de los documentos

Un ejemplo de la primera y última prueba de un cuadro de desplazamiento virtual, utilizando el ejemplo básico de los documentos (100 000 elementos).

Tenga en cuenta que Cypress no espera a que .scrollTo('bottom') complete su acción, por lo que debe aumentar sustancialmente el tiempo de espera al probar el final de la lista.

 cy.get('cdk-virtual-scroll-viewport') .find('.example-item').eq(0) .should('have.text', 'Item #0') cy.get('cdk-virtual-scroll-viewport') .scrollTo('bottom') .find('.example-item', {timeout: 10000}) .should('contain', 'Item #99999')

Su prueba sería similar, pero necesita cambiar el índice final de 999 a lo que sea para sus datos.

 cy.get('cdk-virtual-scroll-viewport') .find('p-dropdownitem > li > div').eq(0) .should('have.text', accoun_Data.dropdowntext1[0]) cy.get('cdk-virtual-scroll-viewport') .scrollTo('bottom') .find('p-dropdownitem > li > div', {timeout: 10000}) .should('contain', accoun_Data.dropdowntext1[999]) // change index

También tenga en cuenta que el segundo uso de should() contain not have.text porque está revisando el texto de los últimos 13 elementos.

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede acortar el código usando $ele.text() . Y también puede agregar trim() para eliminar los espacios finales.

 cy.get('p-dropdownitem > li > div').each(($ele, i) => { expect($ele.text().trim()).to.equal(accoun_Data.dropdowntext1[i]) })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda