我使用console.log写一些详细的消息关于当前任务/期望由量角器执行,但我发现在控制台上这些消息出现在实际任务在浏览器中执行之前。像这样做-
it('should validate all labels', function() {
....
element.sendKey('name');
console.log('name entered to user input');
...
});
控制台日志消息甚至在浏览器加载页面之前就出现了。那么如何解决这个问题呢?
这是因为Protractor尝试运行它所能运行的任何东西,因为它在异步主体上工作。如果你想在规范完成后再console.log一些东西,那么尝试等待,直到上一步的承诺在规范中被解决。
it('should validate all labels', function() {
....
element.sendKeys('name').then(function(){
console.log('name entered to user input');
});
...
});
上面的代码控制台在向元素发送数据后记录语句。更多关于量角器的承诺。
我同意Girish的回答,但是如果你真的想独立于其他承诺记录一些东西,你可以做一些像这样的"hack":
driver.executeScript(function rf(a){return a;}, msg).then(function(s) {
console.log(s);
});