【问题标题】:Cypress: Is it possible to extract a URL of a new browser tab that will be opened by a click?Cypress:是否可以提取通过单击打开的新浏览器选项卡的 URL?
【发布时间】:2021-01-26 19:30:04
【问题描述】:

我需要提取一个新浏览器选项卡的 URL,该选项卡将通过双击一个元素打开。元素不是链接,因此没有任何“href”属性。一旦我们 dblclick 这个项目,我们将有一个正确的 url,我需要提取(并进一步解析)。

    cy.visit("Runtime/Runtime/Form/Home/");
    cy.contains("item").should('be.visible').dblclick(); 
    const url = // to do
   

我知道 cypress 不支持多个选项卡测试,但我不需要对选项卡进行任何测试......只是获取该 url 的内容。有可能吗?

【问题讨论】:

  • 你能发布具有 URL 的元素的 HTML DOM 吗?
  • 如果你是认真的,我不确定 cypress 是否可以访问新窗口的地址栏
  • Window 对象有一个origin 属性,可以为您提供url。问题是测试中没有对新窗口的引用。它可能是从应用程序中获取的 - 您是否有权访问源代码,特别是 dblclick() 处理程序?

标签: cypress


【解决方案1】:

一种测试方法是使用 Chrome 并在 cypres.json 中禁用 Web 安全性:

"chromeWebSecurity": false

那么你可以这样做:

cy.contains("item").should('be.visible').dblclick()
cy.url()
.then((url) => {
  expect(url).to.contain('some-string')
})

【讨论】:

  • 嗨莱昂纳多,一旦我们双击,我们将打开一个新的浏览器选项卡,其中包含我想要实现的新 URL。但是,如果我们运行您的示例,我们将检查与单击完成之前相同的 url。我错过了什么吗?
  • 恐怕赛普拉斯无法处理打开其他选项卡。这就是 URL 不变的原因。想不出解决办法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-18
  • 2021-03-01
  • 1970-01-01
  • 2018-08-29
  • 1970-01-01
相关资源
最近更新 更多