gpt4 book ai didi

java - Selenium 2/Webdriver JavaScript 异常处理 : error message is null most of the time (Java API)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:34:33 25 4
gpt4 key购买 nike

我在 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 标记中的错误属性时,它也等于 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 时你总是需要返回一些东西,尝试这样做:

try {    
((JavascriptExecutor) webDriver.executeScript("return " + script, args);
} catch(Exception e) {
System.err.println(e.getMessage());
}

关于java - Selenium 2/Webdriver JavaScript 异常处理 : error message is null most of the time (Java API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com