Сообщения console.log появляются перед выполнением актуальной задачи
Я использовал console.log, чтобы написать несколько подробных сообщений о текущей задаче / ожидаемой выполнению транспортиром, но я обнаружил, что на консоли эти сообщения появляются до того, как фактическая задача будет выполнена в браузере. Делать так -
it('should validate all labels', function() {
....
element.sendKey('name');
console.log('name entered to user input');
...
});
Сообщение журнала консоли появляется еще до загрузки страницы в браузере. Так как это исправить?
2 ответа
Это потому, что Protractor пытается запустить все, что может, так как он работает на асинхронном принципале. Если вы хотите что-то для console.log после завершения спецификации, попробуйте подождать, пока обещание предыдущего шага не будет разрешено в спецификации. Вот как -
it('should validate all labels', function() {
....
element.sendKeys('name').then(function(){
console.log('name entered to user input');
});
...
});
Выше кода консоль записывает ваше заявление после отправки данных в элемент. Подробнее об обещаниях транспортира. Надеюсь это поможет.
Я согласен с ответом Гириша, но если вы действительно хотите записать что-то независимо от других обещаний, вы можете сделать что-то "хакерское", например:
driver.executeScript(function rf(a){return a;}, msg).then(function(s) {
console.log(s);
});