Все зависит от того, используете ли вы SELENIUM_PROMISE_MANAGER
или нет. Поскольку это (уже?) Становится устаревшим, я бы не стал его использовать. По умолчанию для него должно быть установлено значение false, но если вы хотите быть уверенным, вы можете добавить SELENIUM_PROMISE_MANAGER = false;
в файл conf. Способ перемещения транспортира заключается в использовании async / await , поэтому ваша функция sendKeys будет выглядеть следующим образом:
let field = element(by.css('CSS.Selector'));
await field.clear();
await field.sendKeys('abc');
Поскольку это асинхронные функции, вам необходимо правильно определить свою функцию, поэтому базовая спецификация будет выглядеть следующим образом:
describe('Demonstrating async/await',function(){
it('Should send some keys', async function(){
let field = element(by.css('CSS.Selector'));
await field.clear();
await field.sendKeys('abc');
});
});
Важное отличие состоит в том, что функцию необходимо определить как async function()
. Что касается чтения кода, await
можно просто прочитать как «Подождите, пока обещание не будет решено двигаться дальше». Это немного утомительно, и вы чувствуете, что пишете await
перед каждой строкой кода (в основном вы делаете), но я считаю, что это значительно лучше, чем .then()
деревья.