Angular 7, транспортир, случайная ошибка, и угловая тестируемость, и угловая тестируемость не определены & rdquo;

Вы также можете использовать метод compareTo() для сравнения двух строк. Если результат compareTo равен 0, то две строки равны, в противном случае сравниваемые строки не равны.

== сравнивает ссылки и не сравнивает фактические строки. Если вы создали каждую строку, используя new String(somestring).intern(), вы можете использовать оператор == для сравнения двух строк, в противном случае могут использоваться только методы equals () или compareTo.

2
задан user2010955 17 January 2019 в 10:56
поделиться

2 ответа

Если вы используете async / await (которым вы являетесь!), Вам нужно будет дождаться всех обещаний. Поэтому я предполагаю, что ваше beforeEach обещание загрузить страницу не выполнено, и вы ищете веб-элемент, который, возможно, не был должным образом загружен Protractor.

beforeEach(async () => {
  myPage = new MyPage();
  await browser.get('my-page');   // browser.get returns a webdriver.promise.Promise
});

it('should work', async () => {
  console.log('should work');
  expect(true).toBeTruthy();
});

it('should display the title', async () => {
  const title = await $('my-title-selector').getText();  // <-- this is right, getText returns a webdriver.promise.Promise<string>
  expect(title).toEqual('My-Title');
});

Если вы используете Protractor 5.4, он по-прежнему использует библиотеку управления потоком / обещанием selenium-webdriver, а не собственные обещания. Таким образом, webdriver.promise.Promise - это набор команд селен-веб-драйвера, пространство имен обещания, объект обещания. В Protractor 6 (когда он не в бета-версии), он переключится на нативные обещания.

Надеюсь, что это помогает.

0
ответ дан cnishina 17 January 2019 в 10:56
поделиться

Ваш первый тест будет проходить всегда, потому что он не взаимодействует с приложением и, следовательно, не проверяет тестируемость углового участка. Ваш второй тест, однако, пытается взаимодействовать с приложением, но, по-видимому, истекает время ожидания, поскольку страница не стала тестируемой на этом этапе. По этой же причине ваши тесты проходят, когда waitForAngularEnabled (false), поскольку они больше не проверяют тестируемость.

Может возникнуть проблема с установкой страницы, если ваш угловой код использует $ интервал или $ тайм-ауты определенным образом. Ознакомьтесь с обновлениями основного вопроса по ссылке ниже и посмотрите, могут ли они применяться к вашему проекту.

Как отлаживать тайм-аут ожидания асинхронных угловых задач? Не удается найти элементы на угловой странице

0
ответ дан DublinDev 17 January 2019 в 10:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: