2016-12-13 80 views
1

我已經被要求記錄量角器的所有操作。沿着量角器:記錄操作

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

我的第一次努力的東西線是包在全球可用browser.driver在代理對象,然後在我的測試中使用這個代理對象,並通過調用到目標之前登錄的動作。這適用於諸如「get」之類的方法,但這似乎不捕獲諸如click和sendKeys之類的事件。我嘗試在代理中包裝全局可用的元素函數,但是這不起作用,似乎只是隨機輸出被調用的「全部」方法。

有沒有簡單的方法來記錄被調用的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

我希望儘可能避免代碼重複。因爲使用這種方法,我必須實現點擊,發送鍵等等,只是爲了有相同的日誌行一遍又一遍 – ExoticChimp

+0

是的,用這種方法你需要爲大部分函數編寫包裝器。我會看看我是否發現任何短小的工作。 – rk30

+0

我最初嘗試使用ES6代理並捕獲get調用,但它只適用於browser.driver.get()。當試圖包裝element()調用時它不起作用 – ExoticChimp