您可以在每個窗口的head部分注入一些javascript以將所有錯誤記錄到隱藏的div中。然後Selenium可以從這個div中獲取文本,並將其解析爲頁面上發生的所有錯誤的報告。
例如,給出以下頁面佈局:
<html>
<head>
<script>
window.onerror = function(e) {
document.getElementById("hidden-selenium-log").innerText += e.toString() + ";";
}
</script>
</head>
<body>
<div id="hidden-selenium-log" style="display: none;">
</div>
<div id="broken-button" onclick="unknownFunction()">broken</div>
</body>
</html>
在head
標籤會寫所有JavaScript錯誤到DIV hidden-selenium-log
腳本。點擊div broken-button
將觸發錯誤事件處理程序並將其記錄到隱藏的硒日誌中。
與網頁互動之後,然後你可以不喜歡簡單的東西:
Driver.FindElement(By.Id("hidden-selenium-log")).text.split(";");
這將得到隱藏的硒日誌中的文本,然後由分號分開它,一個字我後追加記錄每個錯誤。
嘗試browsermobproxy與硒和應該給你使用的硒會牽扯太多的樣板...... –
。您可以在頭部注入JavaScript,然後在頁面呈現時調用它。迄今沒有成功。 – Homewrecker