Ошибка: неверное свойство Chai: toBe. Вы имели в виду «до»? - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь проверить, присутствует ли элемент на угловом веб-сайте. Я использую транспортир 5.4.0.

В заголовке файла my_steps.js у меня есть это:

global.expect = require('chai').expect
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);

Код, который я использую для подтверждения наличия выпадающего списка:

Then(/^(.*) is present$/, function (dropdown,callback) {
        expect(element(by.id(dropdown)).isPresent()).toBe(true);
        callback();

А вывод команды protractor.conf.js для транспортира:

When application opened # ../Features/step_definitions/my_steps.js:62
   ✖ Then templateSelection is present # ../Features/step_definitions/my_steps.js:70
       Error: Invalid Chai property: toBe. Did you mean "to"?

Что я делаю не так?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Поскольку вы используете плагин «Chai-as-обещанный», который расширяет Chai свободно говорящим языком для утверждения фактов об обещаниях. Вы должны немного откорректировать утверждения. На странице ниже приведены хорошие примеры. Чай как обещанная страница с объяснениями

Для вашей проблемы вам нужно изменить:

.isPresent()).toBe(true);

до:

.isPresent()).to.eventually.equal(true);

Поэтому ваше утверждение должно выглядеть так:

expect(element(by.id(dropdown)).isPresent()).to.eventually.equal(true);

Также обратите внимание, что я не видел использования только .equals .equal

0 голосов
/ 29 августа 2018

isPresent() возвращает обещание

expect(element(by.id(dropdown)).isPresent()).to.eventually.equals(true);

...