Я заметил, что вы поставили ключевое слово async
для блока it
, возможно, вы пытаетесь реализовать подход async / await , в этом случае ваш код должен выглядеть так
it('should login', async function() {
await browser.get('http://localhost:4200');
await element(by.id('password')).sendKeys('abc');
});
Если вы сомневаетесь, что для выражения требуется ключевое слово await
, отметьте API транспортира , и вы увидите, что, например, sendKeys возвращает !webdriver.promise.Promise
.Это означает, что вы должны добавить await
, в противном случае транспортир не будет ждать этого шага, прежде чем двигаться вперед, что может привести к ошибке, такой как у вас.
PS Чтобы включить async/await
, вы должны поставитьследующая опция в файле conf
SELENIUM_PROMISE_MANAGER: false
В противном случае ваш код не требует декларации async/await
и Web Driver Control Flow
выполнит всю работу за вас, хотя в настоящее время она устарела и будет удалена в более поздний момент.