使用柏树点击 "注册 "按钮后,试图进入弹出窗口(注册)形式。

问题描述 投票:0回答:1

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

我正在执行这些步骤。

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

我试图得到这个窗口,但我的应用程序不识别页面,我得到一个错误。请注意所附的图像。

enter image description here

这是我的代码

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

但我的代码不能识别新的窗口 这是我想处理的窗口。

javascript cypress popupwindow
1个回答
1
投票

不幸的是,在当前版本中,通过Cypress访问新窗口是不可能的。

我将是一个很好的做法,使用两个独立的测试来测试这个功能。

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('[email protected]');
         ...
         ...
     });
});
© www.soinside.com 2019 - 2024. All rights reserved.