Обновление этого ответа
В версии транспортира 6.0 используется версия селена 4 , которая является первой версией селена, в которой прекращена поддержка потока управления,Поток управления позволил Protractor выполнять код, такой как
browser.get('http://google.com');
expect(browser.getTitle()).toEqual('Super Calculator');
, синхронно.
Поток управления использовался до сих пор для обработки асинхронного характера обещаний webdriverJS в удобной для пользователя форме.Как только стиль обработки обещаний es8 / await стал поддерживаться, однако было принято решение отказаться от потока управления и посоветовать пользователям использовать асинхронное / ожидание в будущем.
оригинальный ответ 6.0 - последняя версия Protractor, я полагаю, что она была выпущена 3 дня назад (около 22 марта / 19), и в ней отсутствует поддержка элемента управленияпоток, который ранее был включен по умолчанию.Очевидно, учебная документация не была обновлена, чтобы отразить это, однако, и я считаю, что именно поэтому вы видите эту проблему.
В дальнейшем вам нужно будет использовать синтаксис async / await (которыйна самом деле гораздо более читабелен и прост в использовании)
Попробуйте следующий код:
configuration.js
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['test-spec.js']
};
test-spec.js
describe('Protractor Demo App', function() {
it('should have a title', async function() {
await browser.get('http://juliemr.github.io/protractor-demo/');
expect(await browser.getTitle()).toEqual('Super Calculator');
});
});
Обновление: Если вы попытаетесь добавить SELENIUM_PROMISE_MANAGER: true,
к вашему configuration.js
, что может позволить вам продолжить работу с демонстрацией в том виде, как она естьнаписано.