«Недопустимая тема» при попытке установить свойства CSS с помощью Cypress - PullRequest
1 голос
/ 03 июня 2019

Я создал какой-то конец-2-конец с кипарисом. Локальные тесты работают нормально, но когда эти тесты выполняются на CircleCI, он показывает ошибки от Cypress

CypressError: Timed out retrying: You attempted to make a chai-jQuery assertion on an object that is neither a DOM object or a jQuery object.

The chai-jQuery assertion you used was:

  > css

The invalid subject you asserted on was:

  > 250px

To use chai-jQuery assertions your subject must be valid.

This can sometimes happen if a previous assertion changed the subject.

И это код, ответственный за эту ошибку.

    cy.get('.vce-single-image')
      .should('have.css', 'width')
      .and('have.css', 'height')

Та же ошибка для этого.

    cy.window()
      .then((win) => {
        cy.get('.vce-row')
          .should('have.css', 'width')
          .and('have.css', 'height')
      })

Я пытался добавить first() после get(), но это не помогло. Я попробовал это локально на разных устройствах, и с этим проблем нет.

Для образа док-станции CircleCi я использую собственное изображение, основанное на circleci/php:7.3.2-apache. Вот ссылка https://github.com/wpbakery/ci-wordpress/blob/master/circleci/Dockerfile.

1 Ответ

1 голос
/ 03 июня 2019

Обычно cy.should() возвращает значение, из которого он был связан. Однако некоторые утверждения, в том числе have.css, меняют тему, полученную на cy.should(). (вот соответствующая chai-jquery документация )

Итак, это должно работать:

cy.get('.vce-single-image').should('have.css', 'width', '250px')
cy.get('.vce-single-image').should('have.css', 'height', '250px')

Соответствующее чтение: Как узнать, какие утверждения меняют тему, а какие - одинаковые?

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