javascript - cy.url 未按预期返回字符串

标签 javascript cypress e2e-testing regression-testing

在改用哈希路由器之前,我经常执行 cy.url 命令,以确保整个应用程序中的链接导航到正确的 URL 地址。现在我们使用哈希路由 cy.url 不再生成字符串,而是生成函数。有什么想法可以解决这个问题或发生这种情况的原因吗?

我在 cypress 测试运行程序中遇到错误,例如:

AssertionError: object tested must be an array, an object, or a string, but undefined given

所以我记录了 typeof 结果 console.log(typeof(cy.url)) 并将函数打印到控制台。

cy.get(dataCyButtonAttribute)
    .should('be.visible')
    .click()
  console.log(typeof(cy.url))
  cy.url().then(url => {
    const categoryId = url.split(`${linkType}/`)[1]
    const category = url.split('admin/')[1]
    expect(category).to.contain(linkType)
    expect(categoryId).to.equal('new')
  })
}

最佳答案

这应该产生一个字符串:

const returnedUrl = null
cy.url().then(url => {
  returnedUrl = url;
});

Cypress 命令是异步的,必须后跟 .then() 才能产生有用的返回值。

您可以引用此 Github 问题以获取更多信息: https://github.com/cypress-io/cypress/issues/2150

关于javascript - cy.url 未按预期返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56710241/

相关文章:

javascript - Createjs应用线性渐变描边

javascript - 向 websocket 客户端发送消息时压缩位必须为 0

javascript - 将 anchor append 到无序列表中的每个列表项 - Javascript

javascript - 自动回调阶梯创建器

javascript - 在 Cypress 中覆盖 cy.click() 命令的正确方法是什么?

Cypress :父包运行其 Cypress /集成测试及其依赖项 Cypress /集成测试

javascript - Cypress 更改了 URL,导致应用程序崩溃

reactjs - 如何在 puppeteer 中模拟拖放 Action ?

testing - 是否可以在测试脚本中使用元数据?

selenium - 录制 Protractor e2e 测试的视频