CasperJS 中 casper.echo 和 console.log 的区别

Difference between casper.echo and console.log in CasperJS

casper.echoconsole.log有区别吗?

casper.echo('Testing');

console.log('Testing');

它们都在控制台中记录内容。

在最基本的形式中,它们是等价的。

不过还是有一些区别:

  • (仅适用于PhantomJS)像console.log("s", 1, obj)一样将多个对象传入console.log()实际上等同于console.log("s" + " " + 1 + " " + obj)。当您在 SlimerJS 中尝试这样做时,它只会打印第一个参数而忽略其他参数。

  • casper.echo() 能够为您提供的输入着色。签名是:

    Casper.prototype.echo = function echo(text, style, pad) { ... };
    

    这主要用于内部输出着色,如错误和测试工具。仅当您的终端默认支持着色时,您才可以使用 those colors

    var styles     = {
        'ERROR':     { bg: 'red', fg: 'white', bold: true },
        'INFO':      { fg: 'green', bold: true },
        'TRACE':     { fg: 'green', bold: true },
        'PARAMETER': { fg: 'cyan' },
        'COMMENT':   { fg: 'yellow' },
        'WARNING':   { fg: 'red', bold: true },
        'GREEN_BAR': { fg: 'white', bg: 'green', bold: true },
        'RED_BAR':   { fg: 'white', bg: 'red', bold: true },
        'INFO_BAR':  { bg: 'cyan', fg: 'white', bold: true },
        'WARN_BAR':  { bg: 'yellow', fg: 'white', bold: true },
        'SKIP':      { fg: 'magenta', bold: true },
        'SKIP_BAR':  { bg: 'magenta', fg: 'white', bold: true }
    };