【发布时间】:2012-05-31 20:40:34
【问题描述】:
我只是想进行设置并能够从 Selenium 的网站上运行 example。但是,我已将其范围缩小到导致 StackOverflowError 的 FirefoxDriver 构造函数。我使用 InternetExplorerDriver 得到相同的行为,但不是 HtmlUnitDriver。
以下代码
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class WebDriverTest {
@Test
public void test() {
WebDriver driver = new FirefoxDriver();
}
}
产生以下堆栈跟踪:
java.lang.StackOverflowError
at java.lang.Exception.<init>(Unknown Source)
at java.lang.reflect.InvocationTargetException.<init>(Unknown Source)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.json.JSONObject.populateMap(JSONObject.java:937)
at org.json.JSONObject.<init>(JSONObject.java:272)
at org.json.JSONObject.wrap(JSONObject.java:1539)
at org.json.JSONObject.populateMap(JSONObject.java:939)
at org.json.JSONObject.<init>(JSONObject.java:272)
at org.json.JSONObject.wrap(JSONObject.java:1539)
at org.json.JSONObject.populateMap(JSONObject.java:939)
at org.json.JSONObject.<init>(JSONObject.java:272)
at org.json.JSONObject.wrap(JSONObject.java:1539)
at org.json.JSONObject.populateMap(JSONObject.java:939)
at org.json.JSONObject.<init>(JSONObject.java:272)
at org.json.JSONObject.wrap(JSONObject.java:1539)
at org.json.JSONObject.populateMap(JSONObject.java:939)
at org.json.JSONObject.<init>(JSONObject.java:272)
at org.json.JSONObject.wrap(JSONObject.java:1539)
at org.json.JSONObject.populateMap(JSONObject.java:939)
at org.json.JSONObject.<init>(JSONObject.java:272)
:
:
我正在使用 selenium-java-2.22.0 和下载时打包的 json jar(即 json-20080701.jar)
另外值得注意的是,当运行新的 FirefoxDriver 时,Firefox 会启动并且您会看到一个新的标签页。使用 InternetExplorerDriver,不会打开任何窗口,但它会生成与 JSONObject 无限循环的相同堆栈跟踪。我在 Windows 7 上运行 Firefox 12.0 和 IE9。
【问题讨论】:
-
哇。就像调试工具一样,尝试使用
-Xss1m或更多(32 位 JVM 通常默认为 512 kB)运行它,以查看递归是否真的是无限的。您的 Java JDK 和/或 JRE 版本是什么?您确定项目的类路径中没有冲突的 jar 吗? -
我已经添加了参数
-Xms1024m。根据您的建议,我只是擦除了包含我的依赖项的文件夹,从我的 ivy.xml 文件中删除了除 selenium 及其依赖项之外的所有依赖项条目,然后取消了我的依赖项。 Firefox 现在可以工作了,我从 IE 中得到一个不同的错误。所以现在我可以很开心地确定哪些依赖项是冲突的。如果您添加答案,我会接受。
标签: selenium webdriver selenium-webdriver