【问题标题】:Cypress compare two strings赛普拉斯比较两个字符串
【发布时间】:2021-11-19 09:59:22
【问题描述】:

我在 HTML 中有一个 h1 标记,其中包含每 6 秒更新一次的实际时间(年、月、日和时间),它可以工作。我需要检查六秒钟后时间是否改变。问题是我尝试了以下代码:

  var t1;
  cy.get("h1").should(($d) => {
    t1 = $d.text();
    });
    cy.wait(600);
    cy.get("h1").should(($d) => {
        const t2 = $d.text();
        expect(t2).not.equal(t1);
    })

但第一个变量(t1)总是一个空字符串“”,而第二个变量需要时间。测试通过但原因错误(“”与“2021-11-09 10:52:33”不同)我如何才能第一次参加?

更新
我试图只显示第一个时间戳,它适用于以下代码:

  cy.get("h1").should(($d) => {
    const t1 = $d.text();
    expect(t1).not.equal("");
    })

但我需要将它与第二个进行比较,而不是与空字符串进行比较。我认为是因为 Cypress 是异步的,但我不知道如何连接第二部分。

【问题讨论】:

    标签: string asynchronous testing cypress


    【解决方案1】:

    我为每个时间戳使用 var 而不是 const 解决了这个问题。使用 var 可以同时获取时间戳并进行比较:

      var t1;
      var t2;
      cy.get("h1").should(($d) => {
        t1 = $d.text();
        expect(t1).not.equal("");
        })
        
        cy.wait(6000);
        cy.get("h1").should(($d) => {
            t2 = $d.text();
            expect(t2).not.equal(t1);
        })
    

    仅当我检查与“”不同的第一个时间戳时它才有效,我真的不知道为什么,但没关系,因为通过这种方式我验证了时间戳是否有效。 另外 6 秒是 6000 而不是 600 毫秒。

    【讨论】:

      猜你喜欢
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 2020-01-26
      • 1970-01-01
      相关资源
      最近更新 更多