【问题标题】:Calculating total in cypress在柏树中计算总数
【发布时间】:2020-02-29 04:14:56
【问题描述】:

我正在尝试按以下方式计算总价。但是,当我在底部记录总值时,我总是得到 0 记录。

我希望将总计存储在一个变量中,以便以后可以使用它来比较值。

  let total = 0;

  cy.get('[cy-data="order-summary-products-product"]').each(
    ($product, index, $list) => {
      const productQuantity = $product.attr("cy-data-product-quantity");
      const productPrice = $product.attr("cy-data-product-price");

      total += productPrice * productQuantity;

      cy.wrap($product)
        .find('[cy-data="order-summary-products-modifier"]')
        .each(($modifier, index2, $list2) => {
          const modifierQuantity = $modifier.attr("cy-data-modifier-quantity");
          const modifierPrice = $modifier.attr("cy-data-modifier-price");

          total += modifierPrice * modifierQuantity;
        });
    }
  );

cy.log(total) //Always get 0 logged

【问题讨论】:

  • .then 替换.each 怎么样,像你做的那样循环数据(使用for 循环)并在循环之后登录数据,仍然在回调中?

标签: cypress


【解决方案1】:

赛普拉斯有一个 env() 方法,您可以全局使用它来存储您需要的任何内容。

Cypress.env('totalQuantity') = 0;    

cy.get('[cy-data="order-summary-products-product"]').each(
($product, index, $list) => {
  const productQuantity = $product.attr("cy-data-product-quantity");
  const productPrice = $product.attr("cy-data-product-price");

  Cypress.env('totalQuantity') += productPrice * productQuantity;

  cy.wrap($product)
    .find('[cy-data="order-summary-products-modifier"]')
    .each(($modifier, index2, $list2) => {
      const modifierQuantity = $modifier.attr("cy-data-modifier-quantity");
      const modifierPrice = $modifier.attr("cy-data-modifier-price");

      Cypress.env('totalQuantity') += modifierPrice * modifierQuantity;
    });
});

【讨论】:

    猜你喜欢
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    相关资源
    最近更新 更多