我只是想进行设置并能够从 Selenium 的网站运行示例。但是,我已将其范围缩小到导致 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。