NoClassDefFoundError: org/openqa/selenium/MutableCapabilities

2,693 views
Skip to first unread message

temp....@gmail.com

unread,
Oct 25, 2017, 8:30:06 AM10/25/17
to Selenium Users

OS:
Windows
Selenium Version: 3.5.3
Browser: All (latest)

Im trying to update my selenium from 3.4.0 to the newest version 3.5.3 but when i'm trying to run my cucumber tests in maven I get the following error:

 java.lang.NoClassDefFoundError: org/openqa/selenium/MutableCapabilities
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:109)
	at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:200)
	at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:154)
	at nl.esize.cucumber.helper.WindowsDriverHelper.getDriver(WindowsDriverHelper.java:54)
	at nl.esize.cucumber.helper.DriverHelper.setUp(DriverHelper.java:26)
	at nl.esize.cucumber.EsizeCucumberTest.setupTest(EsizeCucumberTest.java:36)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cucumber.runtime.Utils$1.call(Utils.java:40)
	at cucumber.runtime.Timeout.timeout(Timeout.java:16)
	at cucumber.runtime.Utils.invoke(Utils.java:34)
	at cucumber.runtime.java.JavaHookDefinition.execute(JavaHookDefinition.java:60)
	at cucumber.runtime.Runtime.runHookIfTagsMatch(Runtime.java:224)
	at cucumber.runtime.Runtime.runHooks(Runtime.java:212)
	at cucumber.runtime.Runtime.runBeforeHooks(Runtime.java:202)
	at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:40)
	at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:102)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
	at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:95)
	at cucumber.api.junit.Cucumber.runChild(Cucumber.java:38)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at cucumber.api.junit.Cucumber.run(Cucumber.java:100)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:367)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.MutableCapabilities
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 56 more

My driver class looks like the following:

	public static WebDriver getDriver(BrowserType browser) {
		WebDriver driver = null;
		switch (browser) {
		case CHROME:
			System.setProperty(PROPERTY_DRIVER_CHROME, PATH_DRIVER_CHROME);
			System.setProperty("webdriver.chrome.logfile", "C:/Programs/eclipse Neon/workspace/cucumber/logs/chromedriver.log");
			System.setProperty("webdriver.chrome.verboseLogging", "true");
			driver = new ChromeDriver();
			break;
		case IE:
			System.setProperty(PROPERTY_DRIVER_INTERNET_EXPLORER, PATH_DRIVER_INTERNET_EXPLORER);
			System.setProperty("webdriver.ie.driver.loglevel", "WARN");

			
			driver = new InternetExplorerDriver();
			break;
		case FF:
		default:
			FirefoxOptions options = new FirefoxOptions();
			options.setLogLevel(Level.WARNING);


			System.setProperty(PROPERTY_DRIVER_FIREFOX, PATH_DRIVER_FIREFOX);
			driver = new FirefoxDriver(options);
			break;
		}
		return driver;
	}

And my pom.xml dependencies:

	<dependencies>
		<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.5.0-b01</version>
		</dependency>


		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>htmlunit-driver</artifactId>
			<version>2.27</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>

		<dependency>
			<groupId>info.cukes</groupId>
			<artifactId>cucumber-java</artifactId>
			<version>1.2.5</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>info.cukes</groupId>
			<artifactId>cucumber-picocontainer</artifactId>
			<version>1.2.5</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>info.cukes</groupId>
			<artifactId>cucumber-junit</artifactId>
			<version>1.2.5</version>
			<scope>test</scope>
		</dependency>

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

		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-firefox-driver</artifactId>
			<version>3.5.3</version>
		</dependency>

		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-chrome-driver</artifactId>
			<version>3.5.3</version>
		</dependency>

		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-ie-driver</artifactId>
			<version>3.5.3</version>
		</dependency>

		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-edge-driver</artifactId>
			<version>3.5.3</version>
		</dependency>

		<dependency>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-resources-plugin</artifactId>
			<version>3.0.2</version>
		</dependency>

		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-support</artifactId>
			<version>3.5.3</version>
		</dependency>
	</dependencies>

I had no issues before going to 3.5.3 so i'm thinking i did something wrong.
Hopefully you can help me, if you need some logs i will add these aswell

Krishnan Mahadevan

unread,
Oct 25, 2017, 8:40:01 AM10/25/17
to seleniu...@googlegroups.com

The problem is with this dependency

 

<dependency>

    <groupId>org.seleniumhq.selenium</groupId>

    <artifactId>htmlunit-driver</artifactId>

    <version>2.27</version>

</dependency>

 

This dependency brings in a very old version of selenium-api [ Refer to the compile dependencies section here ]

 

I would suggest that you do the following.

 

  1. Upgrade to the latest version of htmlunit-driver viz., 2.52.0
  2. To be on the safer side, add an exclusion as below. (because htmlunit-driver brings in selenium-support 2.52.0)

 

<dependency>

    <groupId>org.seleniumhq.selenium</groupId>

    <artifactId>htmlunit-driver</artifactId>

    <version>2.52.0</version>

    <exclusions>

       <exclusion>

        <groupId>org.seleniumhq.selenium</groupId>

        <artifactId>selenium-support</artifactId>

       </exclusion>

    </exclusions>

</dependency>

 

Now you can try again.

 

Thanks & Regards

Krishnan Mahadevan

 

"All the desirable things in life are either illegal, expensive, fattening or in love with someone else!"

My Scribblings @ http://wakened-cognition.blogspot.com/

My Technical Scribbings @ http://rationaleemotions.wordpress.com/

--
You received this message because you are subscribed to the Google Groups "Selenium Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to selenium-user...@googlegroups.com.
To post to this group, send email to seleniu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/selenium-users/d37d5937-59a4-4231-a7b3-520095c85a92%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Message has been deleted

temp....@gmail.com

unread,
Oct 25, 2017, 9:27:18 AM10/25/17
to Selenium Users
thanks alot for the quick reply, i added this dependency now but now it says im missing alot more artifacts so i will try and add those and see what it says then

temp....@gmail.com

unread,
Oct 26, 2017, 3:22:04 AM10/26/17
to Selenium Users


On Wednesday, October 25, 2017 at 3:27:18 PM UTC+2, temp....@gmail.com wrote:
thanks alot for the quick reply, i added this dependency now but now it says im missing alot more artifacts so i will try and add those and see what it says then

when using :

<dependency>

    <groupId>org.seleniumhq.selenium</groupId>

    <artifactId>htmlunit-driver</artifactId>

    <version>2.52.0</version>

</dependency> 

it seems to work fine, with the exclusion i get alot of missing dependencies so i decided to remove that.I am getting some inconsitencies in my chromedriver but i will make a diffrent ticket for that or il ask the chrome devs.
Thanks for the help
Reply all
Reply to author
Forward
0 new messages