使用赛普拉斯单击后捕获URL

时间:2019-02-01 15:41:10

标签: testing e2e-testing cypress

我想知道如何在单击链接后捕获和读取URL。

在click事件中,我们的javascript对实际的<a href>然后是window.location.href = newURL进行了一些字符串操作,因此原始href不一定是单击后到达的位置。

这是我的开始方式:

describe("Twitter", function() {

  it("Should assert that via value is set correctly in JS", function() {

    cy.server();
    cy.visit(Cypress.config("appUrl") + "/probes/sha/sha-via.html");
    cy.get("#v_test ul.share li a")
      .click();

  });

});

编辑:我想要捕获位于“页面加载”步骤的URL。

enter image description here

2 个答案:

答案 0 :(得分:1)

您应该可以使用cy.on url:changed 事件回调中执行assertions

cy.on("url:changed", (newUrl) => {
  expect(newUrl).to.contain("?magic=true")
})

答案 1 :(得分:0)

您可以使用cy.location()命令,例如:

cy.get("#v_test ul.share li a")
      .click();
cy.location('href').should('eq', 'newUrl');

此外,作为cy.location('href')命令的别名,您可以使用cy.url()