Selenium-Java:Browsermob Proxyy- NoClassDefFoundError

时间:2016-07-20 15:56:33

标签: selenium selenium-webdriver browsermob-proxy

我使用最新的selenium-java依赖项和Browsermob代理更新了POM.xml。

Java代码:

   WebDriver driver = new ChromeDriver();
    driver.get("http://www.google.com");
    driver.quit();
     

POM.xml看起来像,

        <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>2.53.1</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.1</version>
    </dependency>
    <dependency>
        <groupId>net.lightbody.bmp</groupId>
        <artifactId>browsermob-proxy</artifactId>
        <version>2.0-beta-8</version>
    </dependency>

当我运行自动化脚本时,出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/interactions/HasInputDevices

删除Browsermob代理依赖项后,脚本运行正常。 (但我需要Browsermob代理来捕获网络数据)。

看起来Browsermob代理具有依赖关系selenium-api-2.*,我认为它已过时并导致此问题。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您似乎正在使用非常旧版本的BrowserMob代理,它可能与最新版本的Selenium不兼容。您可以在其github page上找到最新版本的BMP

例如,当前版本的BMP是2.1.2,因此您希望将其包含在您的pom文件中:

<dependency>
    <groupId>net.lightbody.bmp</groupId>
    <!-- note the new artifactId -->
    <artifactId>browsermob-core</artifactId>
    <version>2.1.2</version>
</dependency>