2016-12-13 25 views
1

分度器のすべての動作を記録する必要があります。分度器:ロギングアクション

console.log(action + " was called with arguments " + args.join(", "); 

私の最初の努力の線に沿って何かは、私のテストでは、このプロキシになるオブジェクトを使用して、ターゲットへのコールを渡す前にアクションをログプロキシオブジェクトでグローバルに利用できるbrowser.driverをラップすることでした。これは「取得」などのメソッドで機能しますが、これはclickやsendKeysなどのイベントをキャプチャしていないようです。私はプロキシでグローバルに利用可能な要素の関数をラップしようとしましたが、これはうまくいかず、呼び出されている "all"メソッドをランダムに出力するように見えました。

Webdriverの動作をログに記録する簡単な方法はありますか?

+0

レポートが役立つ場合は、エクステントレポートを使用してみてください。私は分度器の範囲を使ってかなりの報告を見ました。 – Abhinav

+0

ジャスミンのレポートを使ってどうやって助けてくれるのかよく分かりません。それは、基本的なWebドライバの呼び出しを記録することです。 – ExoticChimp

答えて

1

カスタムレポーターの作成に興味がある場合。すべてのイベントに対してラッパー関数を作成できます。

)(クリックするための一例の下に参照してください:

module.exports = { 
    Click: function (elem, logName) { 
     elem.click().then(function() { 
      customReporter.addResult('Performed click for ' + logName); 
     }, function (err) { 
      customReporter.addResult('Failed to click on "' + logName + '" due to "' + err.message + '"'); 
      expect(false).toBe(true); 
     }); 
    }, 
}; 

logNameは - レポートに表示することができ渡された名前です。

この方法では、すべてのアクションをファイルに記録できます。

+0

可能であれば、コードの重複を避けることを望みました。このメソッドを使用するので、私はclick、sendkeysなどを実装する必要があります。同じログラインを何度も繰り返す必要があります。 – ExoticChimp

+0

はい、この方法でほとんどの関数のラッパーを記述する必要があります。私はそれが機能するのに手短に何かを見つけたら私は見るでしょう。 – rk30

+0

私はもともとES6プロキシを使用してgetコールを捕捉しようとしましたが、browser.driver.get()に対してのみ機能します。 element()呼び出しをラップしようとすると動作しません – ExoticChimp