繁体   English   中英

尝试使用 cypress 单击“注册”按钮后弹出 window(注册)表单

[英]Trying to get to the popup window (sign up) form after clicking on 'sign up' button using cypress

我正在导航到这个网站https://www.twitch.tv/并注册一个新用户。

我正在执行这些步骤:

  1. 导航到页面。
  2. 点击注册按钮
  3. 移动到弹出窗口并单击登录
  4. 然后弹出一个注册 window 出现。

我正在尝试获取此 window 但我的应用程序无法识别该页面并且出现错误。 请注意所附图片:

在此处输入图像描述

这是我的代码:

describe('RegisterTwitchTv', function() {
  it('Register New User', function() {
    cy.visit('')
    cy.title().should('eq', 'Twitch')
    cy.get('button[data-a-target="signup-button"]').click()
    // cy.on('window:confirm', ($alertElement) => {
    // expect($alertElement).to.equal('Log in')
    // }).click
    cy.contains('Log in').click()
    cy.window().then((win) => {
      cy.get('button[class~="tw-pd-x-1"]').click()
    })
  })
})

但我的代码无法识别我想要处理的新 window。

不幸的是,在当前版本中无法通过赛普拉斯访问新的 windows。

使用两个独立的测试来测试此功能是一个好习惯:

describe('RegisterTwitchTv', () => {
    // Check the popup is opened
    it('Register New User popup is opened', () => {
        cy.visit('', {
            onBeforeLoad(win) {
                cy.stub(win, 'open');
            }
        });
        cy.title().should('eq', 'Twitch')
        cy.get('button[data-a-target="signup-button"]').click();
        cy.contains('Log in').click();
        cy.window()
            .its('open')
            .should('be.called');
     });

     // Check the login works
     it('Register New User2 login', () => {
         cy.visit('/login?popup=true');
         cy.get('button[class~="tw-pd-x-1"]').click()
         cy.get('#signup-username').type('test@test.com');
         ...
         ...
     });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM