es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

WDIO. ¿Cómo hacer que expect compare el resultado entre dos opciones?

Tengo el sitio – https://the-internet.herokuapp.com/notification_message_rendered
Al hacer clic en el botón, en la parte superior del sitio aparece aleatoriamente una notificación que dice “Acción exitosa/n×” o “Acción no exitosa, por favor intente de nuevo\n×”.
¿Cómo puedo hacer que wdio espere y compare el texto de esta notificación y apruebe la prueba si el texto de la notificación es “Acción exitosa/n×” o “Acción no exitosa, por favor intente de nuevo\n×”?
Aquí está mi código, también importo la expectativa de Chai como “expectChai” para mayor comodidad:

it("prueba de comparación", async function() {
  await browser.url("https://the-internet.herokuapp.com/notification_message_rendered")

  const but = await $("p > a")
  await but.click()
  const t = await $("#flash-messages > div")
  await t.waitForDisplayed()
  const tx = await t.getText()


   await expectChai(tx).to.be.equal("Acción exitosa\n×" || "Acción no exitosa, por favor intente de nuevo\n×")})
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para comparar el texto de la notificación y aprobar la prueba si el texto es “Acción exitosa/n×” o “Acción no exitosa, por favor inténtelo de nuevo\n×”, puedes usar el método “expect” con el operador “or” para comparar el texto con ambas versiones de la notificación. Aquí tienes un ejemplo de código utilizando webdriver-io y Chai:

    it("prueba de comparación", async function() {
      await browser.url("https://the-internet.herokuapp.com/notification_message_rendered");
    
      const botón = await $("p > a");
      await botón.click();
    
      const notificación = await $("#flash-messages > div");
      await notificación.waitForDisplayed();
    
      const textoNotificación = await notificación.getText();
    
      await expect(textoNotificación).to.be.oneOf([
        "Acción exitosa\n×",
        "Acción no exitosa, por favor inténtelo de nuevo\n×"
      ]);
    });
    

    Este código hace clic en el botón y espera a que aparezca la notificación. Luego, obtiene el texto de la notificación y utiliza el método “to.be.oneOf” de la expectativa de Chai para verificar si el texto es una de las dos posibles versiones de la notificación. Si la prueba aprueba, significa que el texto de la notificación es “Acción exitosa/n×” o “Acción no exitosa, por favor inténtelo de nuevo\n×”.

Comments are closed.