2017-01-30 7 views
0

WebdriverIOのログ機能を使用してクロムからブラウザログ(console.logs)を取得したいのですが、機能ログは機能ではありません。WebdriverIO - ブラウザログを取得

var WebdriverIO = require('webdriverio'); 
var chai = require('chai'); 
var _ = require('lodash'); 
var chaiAsPromised = require('chai-as-promised'); 

var expect = chai.expect; 
chai.use(chaiAsPromised); 

var browser = { 
    host: '127.0.0.1', 
    port: 4444, 
    desiredCapabilities: { 
    browserName : 'chrome', 
    chromeOptions: { 
     args: [ 
     'no-sandbox', 
     'use-fake-device-for-media-stream', 
     'use-fake-ui-for-media-stream', 
     'mute-audio', 
     ] 
    }, 
    loggingPrefs: { 
     'driver': 'INFO', 
     'browser': 'INFO' 
    } 
    }, 
}; 

var matrix = WebdriverIO.multiremote({ 
    browserA: browser, 
    browserB: browser, 
}); 

chaiAsPromised.transferPromiseness = matrix.transferPromiseness; 

var browserA = matrix.select('browserA'); 
var browserB = matrix.select('browserB'); 

it('should initialize browsers', function() { 
    return matrix.init(); 
}); 

it('should open two browsers', function(done) { 
    browserA.url('https://127.0.0.1:3000/'); 
    browserB.url('https://127.0.0.1:3000/'); 

    matrix.timeouts('implicit', 15000); 

    matrix.sync().call(done); 
}); 

it('should return logs', function(done) { 
    browserA 
     .log('browser', function(err, msg, a) { 
      console.log(msg); 
     }) 
     .call(done); 
}); 

誰かがこの機能を正しく使用する方法を知っていますか?また、コードスニペットのように、1つのブラウザを使用していて、マトリックスを作成していないときにも機能しません。

答えて

3

APIを間違って使用しています。コールメソッドをlogメソッドに渡すことはできません。コマンドは約束を返します(そのようなスタンドアロンスクリプトを使用する場合)。

browserA 
    .log('browser').then(function(msg) { 
     console.log(msg); 
    }) 
関連する問題