gpt4 book ai didi

selenium - 创建新的 WebDriver 会导致 StackOverflowError

转载 作者:行者123 更新时间:2023-12-04 17:54:26 27 4
gpt4 key购买 nike

我只是想进行设置并能够运行 example来自 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。

最佳答案

欢迎来到 JAR hell

类路径中的某些 JAR 文件与 Selenium 依赖项冲突。即使您使用的是 Ivy ,它也发生了,这有点奇怪。您的依赖项之一很可能包含其 jar 文件中的冲突类 - 或者您的依赖项需要同一库的两个不同版本。

无论如何,对于 future 的用户阅读本文 - 使用一些依赖管理器为您完成 jars 的艰苦工作。如果您有超过 10 个具有依赖项的项目,请不要尝试手动维护您的库 - 您很可能很快就会把它搞砸。 This is quite a reasonable read on dependency solutions, follow some of the links there, don't be lazy.依赖管理器需要一些时间来掌握,他们是自己的世界。但他们有很大帮助。

不要使用同一个库的多个版本。如果您使用多个库,其中两个库使用同一事物的不同版本……祝您好运!

除此之外……我们唯一的希望是Java Module System这将在 Java 8 Java 9 中引入。

关于selenium - 创建新的 WebDriver 会导致 StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10840954/

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