我使用最新的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.*
,我认为它已过时并导致此问题。
非常感谢任何帮助。
答案 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>