【问题标题】:How to open in new tab and switch to that tab with Cypres?如何在新标签中打开并使用 Cypres 切换到该标签?
【发布时间】:2021-10-10 08:16:51
【问题描述】:

技术:Cypress、Typescript

我正在尝试使用此代码从邮件中获取链接并在新标签中打开

let newUrl = '';
cy.window().then((win) => {
  cy.stub(win, 'open').as('windowOpen').callsFake(url => {
    newUrl = url;
  });
})
getIframeBody().find('table#emailContainer tr td a').click();
cy.get('@windowOpen').should('be.called');

不幸的是,我得到了错误: 4000 毫秒后重试超时:预期 windowOpen 至少被调用过一次,但从未被调用过

【问题讨论】:

标签: typescript tabs window cypress


【解决方案1】:

你存错了窗口。 cy.window() 为您提供运行应用程序的 iframe,但您的应用程序有另一个 iframe,应该是您的存根的目标。

类似这样,但可能会遇到 iframe 加载问题

cy.get('iframe#my-iframe')
  .its('0.contentWindow')
  .then((win) => {

    let newUrl = '';
    cy.stub(win, 'open').as('windowOpen').callsFake(url => newUrl = url)

    getIframeBody().find('table#emailContainer tr td a')
      .click()
      .then(() => {
        cy.get('@windowOpen').should('be.calledWith', newUrl)
      })
  })

【讨论】:

    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    相关资源
    最近更新 更多