【问题标题】:Capturing JavaScript errors with Selenium WebDriver for IE and Chrome使用 Selenium WebDriver for IE 和 Chrome 捕获 JavaScript 错误
【发布时间】:2013-05-28 12:18:08
【问题描述】:

如何使用 WebDriver for Chrome 和 IE 驱动程序捕获 JavaScript 错误?

【问题讨论】:

    标签: internet-explorer google-chrome webdriver selenium-webdriver


    【解决方案1】:

    您可以执行自定义 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(); 
    };
    

    然后,让服务器处理日志记录 - 写入文件、数据库等...

    【讨论】:

    • 嗨 Pat Meeker,感谢您的快速回复,以上仅适用于 FF 浏览器,但不适用于 IE 和 Chrome 浏览器。你能帮我处理IE和Chrome上的那些JS吗???
    • 它似乎对我有用...尝试在您的各种浏览器中打开此小提琴:jsfiddle.net/YfXZU/3 您的 ChromeDriver 和 IEDriver 可能存在问题。您的 Selenium 测试能否在这些浏览器中成功运行?
    • 如果您只想自己查看错误(用于调试)而不实际记录任何内容,可以使用python -m SimpleHTTPServer 8080 在命令行上创建一个简单的 HTTP 服务器。
    猜你喜欢
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    相关资源
    最近更新 更多