我正在尝试通过使用 cy.click() 方法通过 cypress 单击简单的锚标记来导航到我的 Web 应用程序的不同部分。
浏览器中的 url 更新为新的 url 但页面加载失败。它给出了一个错误,随后所有以下步骤都失败了。这个错误是无效的,因为我可以手动和在 Firefox 上使用相同的步骤导航到这个。
我尝试过 cy.wait() 也尝试使用 cy.should() 断言直到元素可见但页面本身无法加载。
如果我使用 cy.reload() 页面重新加载并且工作正常(新 url 已经在浏览器中设置)。
注意:我只在 Chrome 和 Electron 中遇到这个问题。这在 Firefox 中不是问题,这令人惊讶。
cy.get("button[href='someLink']").click()
cy.reload()
Cypress runner 新网址
在 cypress runner 中单击我可以看到“新 url”,但是重定向失败或者只是在 chrome 中没有发生
在控制台中我可以看到 New url 和 Url updated by: pushState
pushState 的控制台 url 更新:
网络应用程序有问题吗?还是 chrome 方面存在错误,或者 cypress 根本无法路由到 url?
我找到了这个解决方法
cy.get('a').then((elem) => {
cy.visit(elem[0].href)
});