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

376
Visualizações
Cypress Cucumber, cómo llegar a los datos de la página en un paso y usarlos en otro paso del escenario

A continuación se muestra el escenario mío en el que, en un escenario, obtengo datos de la página y los guardo en una variable como alias. Entonces quiero usar la misma variable/datos en otro escenario para poner un campo de entrada. Estoy usando Alias pero obtengo este error.

cy.wait() no pudo encontrar un alias registrado para: @Orderinfo. Todavía no has creado un alias para nada.

Incluso se aliasó correctamente. Los datos se almacenan en @Orderinfo pero no se puede acceder a ellos en otro paso del escenario.

 Then("Get Data from page", () => { cy.get(".os-order-number").invoke("text").then(($Oid) => { let Order = $Oid.text(); let Order_id = Order.replace(/[^0-9]/g, ""); cy.wrap(Order_id).as("Orderinfo"); }); }); Given("Go to Login", () => { cy.visit("https://dev.simplifyshopping.com/register/"); }); When("Paste variable here", () => { cy.wait(2000); cy.wait("@Orderinfo") cy.get("@Orderinfo")).then((Orderinfo) => { console.log(Orderinfo); cy.get("#id_email").type(Orderinfo); }); });
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Por lo tanto, tanto el uso en varios pasos del mismo escenario como la superposición de escenarios son posibles con Cypress usando el preprocesador Cucumber.

1. Uso de valores en varios pasos del mismo escenario

Con referencia al ejemplo de la pregunta, Order_Id se puede definir fuera de los pasos y, por lo tanto, es accesible en el ámbito global desde todos los pasos. Si entendí el código correctamente, sería algo como esto (probablemente se comentó el código innecesario):

 let Order_id; Then("Get Data from page", () => { cy.get(".os-order-number").invoke("text").then(($Oid) => { let Order = $Oid.text(); Order_id = Order.replace(/[^0-9]/g, ""); // cy.wrap(Order_id).as("Orderinfo"); }); }); Given("Go to Login", () => { cy.visit("https://dev.simplifyshopping.com/register/"); }); When("Paste variable here", () => { cy.wait(2000); // cy.wait("@Orderinfo") // cy.get("@Orderinfo")).then((Orderinfo) => { // console.log(Orderinfo); // cy.get("#id_email").type(Orderinfo); // }); console.log(Order_id); cy.get("#id_email").type(Order_id); });

2. Uso de valores en todos los escenarios (estado de retención en todas las pruebas)

Para hacer accesibles ciertos valores a través de la ejecución de diferentes escenarios, por ejemplo, se puede crear un archivo helper.js que contenga el siguiente código:

 export const stateStore = {};

Dentro de sus archivos de definición de pasos, puede importar stateStore y llenarlo con los valores que desee:

 import { Given, When } from 'cypress-cucumber-preprocessor/steps'; import { stateStore } from '../helpers'; // step used in first scenario Given('some value is made available in scenario 1', () => { stateStore.someValue = 'this is a value'; }); // step used in second scenario When('this value can be used in another step of scneario 2', () => { console.log(`Print some value: ${stateStore.someValue}`); });
about 4 years ago · Juan Pablo Isaza Relatório

0

Se puede hacer usando "alias" .como en cypress. Almacene la variable .as("vaiableName") y luego acceda a ella en la función requerida como this.variableName. Podría ser así.

 Then("Get Data from page", function () { cy.get(".os-order-number").then($Oid => { const Order = $Oid.text() const Order_id = Order.replace(/[^0-9]/g, "") cy.log("inside Then function" + Order_id) cy.wrap(Order_id).as("wrapText") }) }) Given("Go to Login", function () { cy.log(this.wrapText) })
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