我试图通过使用主要方法(不在测试范围)下的selenium webdriver自动化一个简单的用户行为
当从编译器运行以下代码时,它可以工作!
但是在几个案例上运行jar时 – 面临以下问题
(我在Ubuntu上运行,使用 java 7)
当从编译器运行以下代码时,它可以工作!
但是在几个案例上运行jar时 – 面临以下问题
(我在Ubuntu上运行,使用 java 7)
“异常在线程”主要“java.lang.NoClassDefFoundError:org / apache / http / conn / HttpClientConnectionManager”
@Log
public class MainProgram {
public WebDriver driver = new FirefoxDriver(); public static void main(String args[]) { // Injector injector = Guice.createInjector(new WebModule()); System.out.println("Browser will soon be opened"); MainProgram mainProgram = new MainProgram(); mainProgram.run(); } public void run(){ driver.get("http://www.google.co.il"); WebElement lookFor = driver.findElement(By.name("q")); if(!lookFor.isDisplayed()){ driver.close(); log.log(Level.WARNING,"Failed!"); }; driver.close(); } }
WebDriver依赖于pom:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-server</artifactId> <version>2.42.2</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.42.2</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-api</artifactId> <version>2.42.2</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-firefox-driver</artifactId> <version>2.42.2</version> </dependency> Case A when removed -commons-httpclient - received: HttpClientConnectionManager as follows: <!-- <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency>--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.4</version> <!-- <scope>test</scope>--> </dependency> Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:99) at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:82) at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:77) ------------------------------------------------------------------------------------------------------------------------------------------- Case B removed both commons-httpclient + httpcomponents received HttpClientConnectionManager: <!-- <!– <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency>–> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.4</version> <!– <scope>test</scope>–> </dependency>--> liron@liron-Latitude-3330:~$java -jar automatic-tests-4.0-SNAPSHOT-jar-with-dependencies.jar Try Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:99) at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:82) --------------------------------------------------------------------------------------------------------------------------------------------- Case C when both were added to pom - same HttpClientConnectionManager liron@liron-Latitude-3330:~$java -jar automatic-tests-4.0-SNAPSHOT-jar-with-dependencies.jar Browser will soon be opened Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:99) at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:82) at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:77) ----------------------------------------------------------------------------------------------------------------------------------------------
解决方法
昨天晚上,我遇到了与我的WebDriver项目相同的问题,经过一番调试,发现它缺少以下依赖关系.添加后我再也没有遇到这个异常.
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.5</version> </dependency>