您可以在每个窗口的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