Javascript 单击';后尝试进入弹出窗口(注册)窗体;注册';使用柏树的按钮

Javascript 单击';后尝试进入弹出窗口(注册)窗体;注册';使用柏树的按钮,javascript,cypress,popupwindow,Javascript,Cypress,Popupwindow,我正在导航到此网站https://www.twitch.tv/和注册新用户 我正在执行这些步骤: 导航到该页面 点击注册按钮 移动到弹出窗口并单击登录 然后出现一个注册弹出窗口 我正在尝试获取此窗口,但我的应用程序无法识别该页面,因此出现错误。请注意所附图片: 这是我的代码: describe('RegisterTwitchTv', function() { it('Register New User', function() { cy.visit('') cy.title

我正在导航到此网站
https://www.twitch.tv/
和注册新用户

我正在执行这些步骤:

  • 导航到该页面
  • 点击注册按钮
  • 移动到弹出窗口并单击登录
  • 然后出现一个注册弹出窗口
  • 我正在尝试获取此窗口,但我的应用程序无法识别该页面,因此出现错误。请注意所附图片:

    这是我的代码:

    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()
        })
      })
    })
    

    但是我的代码无法识别我要处理的新窗口

    不幸的是,在当前版本中无法通过Cypress访问新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');
             ...
             ...
         });
    });