为什么使用Maven的Selenium会出现错误?

时间:2015-08-30 07:10:55

标签: java eclipse maven selenium

我在Eclipse中做Selenium WebDriver。

在我的第一个项目中,我从下载' selenium-java-2.45.0.zip'中获取WebDriver库,并通过“Java Build Path'”添加它们。 - > '库' - > '添加外部JAR'在Eclipse中。

然后我为项目编写测试脚本,一切运行正常。

在我的第二个项目中,我尝试通过Maven管理WebDriver库。在我的项目POM.xml文件中,我有以下几行:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.45.0</version>
    </dependency>

完全按照Seleniumhq网站的说明进行操作。

然而这次虽然项目编写得很好,但是当我尝试进行“测试”时。运行一些测试脚本,出现构建错误

java.lang.NoClassDefFoundError: com/google/common/base/Optional
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.loadCustomExtension(NewProfileExtensionConnection.java:156)
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.addWebDriverExtensionIfNeeded(NewProfileExtensionConnection.java:148)
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:80)
    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:246)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:114)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:191)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95)
    at test.java.NewTest.beforeMethod(NewTest.java:39)


Caused by: java.lang.ClassNotFoundException: com.google.common.base.Optional
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 45 more

代码行:

    @BeforeMethod
    public void beforeMethod() {
        driver = new FirefoxDriver();  //this line
        ...
    }

似乎缺少一些图书馆。可能是什么问题呢?有什么建议吗?

由于

1 个答案:

答案 0 :(得分:0)

你错过了类路径中的guava-<version>.jar jar。请把它添加到你的pom。

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>18.0</version>
</dependency>