Попытка перейти к форме всплывающего окна (регистрации) после нажатия кнопки «зарегистрироваться» с помощью кипариса - PullRequest
0 голосов
/ 29 мая 2020

Я перехожу на этот веб-сайт 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()
    })
  })
})

но мой код не распознает новое окно с которым я хочу справиться.

1 Ответ

1 голос
/ 01 июня 2020

К сожалению, доступ к новому windows через 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('test@test.com');
         ...
         ...
     });
});
...