【发布时间】:2012-03-04 23:24:11
【问题描述】:
我在 Firefox 10 中使用 Selenium 2.20。
当我执行 JavaScript 代码时:
try {
((JavascriptExecutor) webDriver.executeScript(script, args);
} catch(Exception e) {
System.err.println(e.getMessage());
}
并且代码包含或产生 JavaScript 异常,我无法检索错误消息。相反,它大部分时间都返回 null。
我也试过这个JS代码:
// error handling
window.onerror = function(msg, url, linenumber) {
var error = document.createAttribute("javaScriptErrorMessage");
error.nodeValue = msg + "\n at line number " + linenumber + " (URL: " + url + ")";
document.getElementsByTagName("body")[0].setAttributeNode(error);
};
但这似乎也不起作用。当我尝试在body标签中获取error属性时,它也等于null。
这是我在 Java 中遇到的异常:
org.openqa.selenium.WebDriverException: null (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 8 milliseconds
Build info: version: '2.20.0', revision: '16008', time: '2012-02-28 15:00:40'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.35-32-generic', java.version: '1.6.0_20'
Driver info: driver.version: RemoteWebDriver
相关部分似乎是消息WARNING: The server did not provide any stacktrace information。但我不知道为什么会这样。也许需要更改 Firefox 设置?
我是否错误地使用了 JavascriptExecutor?
【问题讨论】:
-
你使用 JavascriptExecutor 是对的。这是我能说的。您是否尝试过使用其他驱动程序?
-
不,我没有尝试其他驱动程序,因为我认为 Firefox 在稳定性、性能和未来更新方面是最好的选择。但我可能错了。
-
我不同意。根据我的经验,ChromeDriver 是最稳定的。 Firefox 在打开和关闭本机事件方面存在问题。
-
ChromeDriver 唯一的问题是额外的库,它依赖于平台,需要单独下载。
标签: java javascript error-handling webdriver selenium-webdriver