【发布时间】:2013-05-28 12:18:08
【问题描述】:
如何使用 WebDriver for Chrome 和 IE 驱动程序捕获 JavaScript 错误?
【问题讨论】:
标签: internet-explorer google-chrome webdriver selenium-webdriver
如何使用 WebDriver for Chrome 和 IE 驱动程序捕获 JavaScript 错误?
【问题讨论】:
标签: internet-explorer google-chrome webdriver selenium-webdriver
您可以执行自定义 JavaScript 以挂钩到 window.onerror。
您可以告诉您的 JavaScript 将您的数据返回给 Selenium,但是因为您询问的是错误,所以我建议您不要这样做。根据错误,错误可能会破坏 JavaScript 并可能阻止它返回。
一种更强大的方法可能是创建一个服务器,将处理程序暴露给网络,以从您的 JS 发出请求。
因此,您从 Selenium 执行的 JS(在错误发生之前)可能如下所示:
window.onerror = function(message, file, line) {
var asyncHR = new XMLHttpRequest();
var URL = "https://www.yourserver.com/errorlogger?file=" + file + "&line=" + line + "&message=" + message;
asyncHR.open("GET", URL, true);
asyncHR.send();
};
然后,让服务器处理日志记录 - 写入文件、数据库等...
【讨论】:
python -m SimpleHTTPServer 8080 在命令行上创建一个简单的 HTTP 服务器。