0

我用最新的 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.*,我认为它已经过时并导致这个问题。

任何帮助将不胜感激。

4

1 回答 1

1

看起来您使用的是非常旧版本的 BrowserMob 代理,它可能与最新版本的 Selenium 不兼容。您可以在其github 页面上找到最新版本的 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>
于 2016-09-09T02:03:46.687 回答