Console.log消息在实际任务执行之前出现



我使用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);
});

最新更新