cypress 有没有一种方法可以在没有目标的情况下断言打开新选项卡或删除属性,因为我有这样的 href ?

发布于 2025-01-09 23:11:29 字数 477 浏览 1 评论 0原文

我有这样的元素,我正在编写这样的代码来单击,

Then('I click on the Help Icon > {string}', (option) => {
    cy.get('.icon-help').click({ force: true })
    cy.get('ul a')
        .contains(option)
        .click({ force: true })
});

因为我需要先单击然后 断言页面将在下一步中打开,但页面将在新选项卡中打开,并且要删除属性或_target,则没有目标属性。它完全在新选项卡中打开,那么我如何断言页面在新选项卡中打开? 输入图片此处描述

I have the element something like this and i am writing the code something like this to click

Then('I click on the Help Icon > {string}', (option) => {
    cy.get('.icon-help').click({ force: true })
    cy.get('ul a')
        .contains(option)
        .click({ force: true })
});

as i need to click first and
assert that the page is opening in the next step but the page is opening in a new tab and to remove attribute or _target there is no target attribute.Its completely opening in new tab so how i can assert that the page opening in new tab?
enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我爱人 2025-01-16 23:11:29

由于没有 href,因此可能有一个调用 window.open 的点击处理程序。

如果是这样,请存根该调用并断言它已被调用。

cy.get('.icon-help').click({ force: true })

cy.window().then(win => {
  cy.stub(win, 'open').as('open')
})
cy.get('ul a').contains(option).click({ force: true })
cy.get('@open').should('have.been.called')

Since there's no href, it might be that there's a click handler that calls window.open.

If so, stub the call and assert it was called.

cy.get('.icon-help').click({ force: true })

cy.window().then(win => {
  cy.stub(win, 'open').as('open')
})
cy.get('ul a').contains(option).click({ force: true })
cy.get('@open').should('have.been.called')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文