【问题标题】:I can't access a pop-up with Cypress我无法使用 Cypress 访问弹出窗口
【发布时间】:2023-01-10 05:10:42
【问题描述】:

我正在尝试运行一个简单的赛普拉斯场景。 访问此 url:https://www.harmonie-mutuelle.fr/ 并关闭出现的弹出窗口。 但是弹出窗口似乎有一种奇怪的行为。当我运行我的测试时,它没有出现在右侧的导航器中,但它出现在屏幕中间,就好像它是一个 Cypress 弹出窗口(我不知道我是否清楚)

这是我的代码:

cy.viewport(1920, 1080);

cy.visit('https://www.harmonie-mutuelle.fr/');

cy.get('#popin_tc_privacy_container_button > button').eq(2).click();

关于如何关闭该弹出窗口的任何想法?

【问题讨论】:

  • 我访问了该网站,之前从未访问过,并且在滚动后没有看到弹出窗口。

标签: cypress


【解决方案1】:

确定设法找到解决方案。如果有人需要的话,这里有一种使用 wrap 来做到这一点的方法:

cy.visit('https://www.harmonie-mutuelle.fr/').then(() => {

        cy.wrap(window.top.document.querySelector('#popin_tc_privacy_button_3')).click();

    });

【讨论】:

    【解决方案2】:

    您的方法并没有什么错,但是要解释发生了什么-

    cy.get() 等 Cypress 命令开始搜索 <body> 元素。您可以使用.within() 命令修改它。

    最常用于将根元素设置为 <body> 的后代元素,但也应该用于将其移动到父元素 <html> 元素,这是您的测试所需要的。

    cy.visit('https://www.harmonie-mutuelle.fr/');
    
    cy.document()
      .find('html')
      .within(() => {
        cy.get('#popin_tc_privacy_container_button > button').eq(2).click()
      })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多