При запуске тестов с Cypress получена ошибка "Uncaught TypeErrror: Невозможно установить свойство 'inner HTML' of null" - PullRequest
1 голос
/ 05 апреля 2020

Я новичок в Cypress и пытаюсь протестировать Ruby в веб-приложении Rails, используя автономный Cypress.

Вот код теста

/// <reference types="cypress" />

context('Login', () => {


  it('cy.title() - get the title', () => {
    cy.visit('https://apps.novabadmintonclub.com')
    cy.title().should('include', 'Northern Virginia Badminton Club')
    cy.get(':nth-child(2) > .nav-link').click()
    cy.get("#user_email").type("john.doe@gmail.com")
    cy.get("#user_password").type("xx")
    cy.get('.actions > input').click()

  })
})

Сбой теста с ошибка "Uncaught TypeErrror: Невозможно установить свойство 'inner HTML' of null"

Я использую последнюю версию 4.3.0 Cypress для OSX.

Если я изменю URL-адрес посещения напрямую на войдите на страницу https://apps.novabadmintonclub.com/users/sign_in, все работает нормально.

Похоже, что весь dom не отображается до того, как type начнет добавлять текст, или что-то еще.

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

Используя следующий код, я получил это для работы.

Также используя последнюю версию Cypress, пожалуйста, убедитесь, что вы также закрываете свои заявления. Кроме того, я этого не делал, но я всегда рекомендовал бы делать утверждения после того, как вы получили утверждения, так что введенные вами значения действительно существуют.

describe('stack overflow test', () => {
it('should navigate and attempt to login to badminton club', () => {
    cy.visit('https://apps.novabadmintonclub.com');
    cy.get(':nth-child(2) > .nav-link').click({force: true});
    cy.get('#user_email').type('john.doe@gmail.com');
    cy.get('#user_password').type('xx');
    cy.get('.actions > input').click();
});

});

Вот скриншот кипариса GUI, чтобы доказать, что он появляется с сообщением об ошибке.

enter image description here

0 голосов
/ 07 апреля 2020

Эта проблема действительно была ошибкой кода приложения. У меня был javascript код document.getElementById('clock').innerHTML в поисках идентификатора домена, которого там не было, поэтому ошибка. После того как я добавил нулевую проверку для этого идентификатора домена, Cypress-тест работал нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...