UnsupportedDriverException: Could not instantiate class org.openqa.selenium.chrome.ChromeDriver

12,736 views
Skip to first unread message

Богдан Ганжа

unread,
Jul 30, 2016, 8:35:43 AM7/30/16
to Serenity BDD Users Group
Hi All,

I get UnsupportedDriverException exception during JBehave + Serenity project execution on local Jenkins. Maven command on Jenkins job:
clean compile integration-test -Dfun.scanner.stories=stories/search_for_euro_cup_participants.story serenity:aggregate (the same behaviour without serenity:aggregate).

Chrome: 52.0.2743.82 (64-bit)
Jenkins: 2.15
Java: 1.8
Maven: 3.3.9
chromedriver: 2.22.397932

Path to google chrome is set in environment variables.

The same maven command execution goes smooth via IDEA (chrome instance is created successfully, story is passed, etc.).
Exception (on Jenkins ONLY):

13:50:08.969 [pool-1-thread-1] ERROR n.t.core.webdriver.WebDriverFacade - FAILED TO CREATE NEW WEBDRIVER_DRIVER INSTANCE class org.openqa.selenium.chrome.ChromeDriver: Could not instantiate class org.openqa.selenium.chrome.ChromeDriver
net
.thucydides.core.webdriver.UnsupportedDriverException: Could not instantiate class org.openqa.selenium.chrome.ChromeDriver
        at net
.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:209) ~[serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:142) [serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.webdriver.WebDriverFacade.newProxyDriver(WebDriverFacade.java:133) [serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver(WebDriverFacade.java:103) [serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.webdriver.WebDriverFacade.openIgnoringHtmlUnitScriptErrors(WebDriverFacade.java:178) [serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.webdriver.WebDriverFacade.get(WebDriverFacade.java:173) [serenity-core-1.1.36.jar:1.1.36]
        at net
.serenitybdd.core.pages.PageObject.openPageAtUrl(PageObject.java:830) [serenity-core-1.1.36.jar:1.1.36]
        at net
.serenitybdd.core.pages.PageObject.open(PageObject.java:740) [serenity-core-1.1.36.jar:1.1.36]
        at net
.serenitybdd.core.pages.PageObject.open(PageObject.java:728) [serenity-core-1.1.36.jar:1.1.36]
        at bodaganj
.steps.SoccerWaySteps.open_soccerway_website(SoccerWaySteps.java:35) [classes/:na]
        at bodaganj
.steps.SoccerWaySteps$$EnhancerByCGLIB$$e5ab7eee.CGLIB$open_soccerway_website$0(<generated>) [cglib-3.1.jar:na]
        at bodaganj
.steps.SoccerWaySteps$$EnhancerByCGLIB$$e5ab7eee$$FastClassByCGLIB$$5af553ef.invoke(<generated>) [cglib-3.1.jar:na]
        at net
.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) [cglib-3.1.jar:na]
        at net
.thucydides.core.steps.StepInterceptor.invokeMethod(StepInterceptor.java:369) [serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.steps.StepInterceptor.executeTestStepMethod(StepInterceptor.java:354) [serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.steps.StepInterceptor.runTestStep(StepInterceptor.java:329) [serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.steps.StepInterceptor.testStepResult(StepInterceptor.java:134) [serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.steps.StepInterceptor.intercept(StepInterceptor.java:61) [serenity-core-1.1.36.jar:1.1.36]
        at bodaganj
.steps.SoccerWaySteps$$EnhancerByCGLIB$$e5ab7eee.open_soccerway_website(<generated>) [cglib-3.1.jar:na]
        at bodaganj
.jbehave.definitionSteps.SoccerWayDefinitionSteps.openSoccerWayWebsite(SoccerWayDefinitionSteps.java:21) [test-classes/:na]
        at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_91]
        at sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_91]
        at sun
.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_91]
        at java
.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_91]
        at org
.jbehave.core.steps.StepCreator$ParametrisedStep.perform(StepCreator.java:599) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.PerformableTree$FineSoFar.run(PerformableTree.java:340) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.PerformableTree$PerformableSteps.perform(PerformableTree.java:1072) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.PerformableTree$AbstractPerformableScenario.performRestartableSteps(PerformableTree.java:938) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.PerformableTree$NormalPerformableScenario.perform(PerformableTree.java:977) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.PerformableTree$PerformableScenario.perform(PerformableTree.java:887) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.PerformableTree$PerformableStory.performScenarios(PerformableTree.java:811) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.PerformableTree$PerformableStory.perform(PerformableTree.java:784) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.PerformableTree.performCancellable(PerformableTree.java:416) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.PerformableTree.perform(PerformableTree.java:387) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:291) [jbehave-core-4.0.5.jar:na]
        at org
.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:265) [jbehave-core-4.0.5.jar:na]
        at java
.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_91]
        at java
.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_91]
        at java
.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_91]
        at java
.lang.Thread.run(Thread.java:745) [na:1.8.0_91]
Caused by: org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally
 
(Driver info: chromedriver=2.22.397932 (282ed7cf89cf0053b6542e0d0f039d4123bbb6ad),platform=Linux 3.13.0-91-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.28 seconds
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: host: 'bogdan-Inspiron-3737', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-91-generic', java.version: '1.8.0_91'
Driver info: org.openqa.selenium.chrome.ChromeDriver
        at sun
.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_91]
        at sun
.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_91]
        at sun
.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_91]
        at java
.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_91]
        at org
.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) ~[selenium-remote-driver-2.53.0.jar:na]
        at org
.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) ~[selenium-remote-driver-2.53.0.jar:na]
        at org
.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) ~[selenium-remote-driver-2.53.0.jar:na]
        at org
.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249) ~[selenium-remote-driver-2.53.0.jar:na]
        at org
.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) ~[selenium-remote-driver-2.53.0.jar:na]
        at org
.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144) ~[selenium-remote-driver-2.53.0.jar:na]
        at org
.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:170) ~[selenium-chrome-driver-2.53.0.jar:na]
        at org
.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:138) ~[selenium-chrome-driver-2.53.0.jar:na]
        at net
.thucydides.core.webdriver.WebdriverInstanceFactory.newChromeDriver(WebdriverInstanceFactory.java:88) ~[serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.webdriver.WebDriverFactory.chromeDriver(WebDriverFactory.java:510) ~[serenity-core-1.1.36.jar:1.1.36]
        at net
.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:184) ~[serenity-core-1.1.36.jar:1.1.36]
       
... 39 common frames omitted

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>bodaganj</groupId>
<artifactId>TestProject</artifactId>
<version>1.0</version>
<packaging>jar</packaging>

<name>Test JBehave vs Serenity project</name>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<serenity.version>1.1.36</serenity.version>
<serenity.maven.version>1.1.36</serenity.maven.version>
<serenity.jbehave.version>1.13.0</serenity.jbehave.version>
<!--<webdriver.driver>chrome</webdriver.driver>-->
</properties>

<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-core</artifactId>
<version>${serenity.version}</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-junit</artifactId>
<version>${serenity.version}</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-jbehave</artifactId>
<version>${serenity.jbehave.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.easytesting</groupId>
<artifactId>fest-assert-core</artifactId>
<version>2.0M10</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.googlecode.lambdaj</groupId>
<artifactId>lambdaj</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<configuration>
<includes>
<include>**/*TestSuite.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
</plugin>
<plugin>
<groupId>net.serenity-bdd.maven.plugins</groupId>
<artifactId>serenity-maven-plugin</artifactId>
<version>${serenity.maven.version}</version>
<executions>
<execution>
<id>serenity-reports</id>
<phase>post-integration-test</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>


System property regarding driver and browser are set (different cases've been tested):

1. Via EnvironmentVariables -> environmentVariables.setProperty(propertyName, localPropertyValue)

DEBUG FunScannerProperties - System property webdriver.driver was successfully added, --> chrome
DEBUG FunScannerProperties - System property webdriver.chrome.driver was successfully added, --> drivers/chromedriver

2. Properties are specified in serenity.properties.xml:

#--------- WebDriver configuration ------------------------------------
#webdriver.driver=firefox
webdriver.driver=chrome
#webdriver.driver=phantomjs
webdriver.chrome.driver=drivers/chromedriver

restart.browser.each.scenario=true
webdriver.timeouts.implicitlywait=5000
story.timeout.in.secs=2000
serenity.take.screenshots=FOR_FAILURES
serenity.verbose.steps=false
serenity.report.show.manual.tests=false
untrusted.certificates=true
serenity.timeout=15000

serenity.reports.show.step.details=false

3. As Jenkins job properties:

webdriver.chrome.driver=/drivers/chromedriver
webdriver.driver=chrome

Nothing helps.

Any ideas regarding this issue?

Thanks a lot,
Bogdan

Богдан Ганжа

unread,
Jul 30, 2016, 8:39:34 AM7/30/16
to Serenity BDD Users Group
setting driver properties in pom.xml doesn't work also

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<serenity.version>1.1.36</serenity.version>
<serenity.maven.version>1.1.36</serenity.maven.version>
<serenity.jbehave.version>1.13.0</serenity.jbehave.version>
    <webdriver.driver>chrome</webdriver.driver>
<webdriver.chrome.driver>drivers/chromedriver</webdriver.chrome.driver>
</properties>

субота, 30 липня 2016 р. 14:35:43 UTC+2 користувач Богдан Ганжа написав:

Harry King

unread,
Jul 31, 2016, 4:56:48 PM7/31/16
to Serenity BDD Users Group
That's odd!  Is chrome installed to the default location?  Does it start from a regular project without Selenium?  Can you also try dropping:
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-junit</artifactId>
<version>${serenity.version}</version>
</dependency>

from your pom.xml?

Богдан Ганжа

unread,
Aug 1, 2016, 4:39:02 PM8/1/16
to Serenity BDD Users Group
Hi Harry,

Thanks for your response.

1) Chrom is installed to the default location.

root@bogdan-Inspiron-3737:~# which google-chrome
/usr/bin/google-chrome
root@bogdan-Inspiron-3737:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/bogdan/Soft/Maven/apache-maven-3.3.9/bin:/home/bogdan/Soft/jdk/java-8-oracle/bin

2) serenity-junit dependency dropping doesn't help.

3) What do you mean "regular project without Selenium"? Chrome starts even within current project (if I run it through Intellij IDEA).

неділя, 31 липня 2016 р. 22:56:48 UTC+2 користувач Harry King написав:

Harry King

unread,
Aug 2, 2016, 7:59:57 AM8/2/16
to Serenity BDD Users Group
All looks good on that front.

Try adding the path to Chromedriver to your PATH and drop webdriver.chrome.driver=drivers/chromedriver

Богдан Ганжа

unread,
Aug 2, 2016, 6:00:26 PM8/2/16
to Harry King, Serenity BDD Users Group
Same issue.
Could you tell me if there is some Serenity Jira (with free access for defect creation)? Because it seems that defect should be raised. I've spent a week trying to find out the way to solve it, but still no answer.
Thanks

--
You received this message because you are subscribed to a topic in the Google Groups "Serenity BDD Users Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/thucydides-users/E487ewgT96U/unsubscribe.
To unsubscribe from this group and all its topics, send an email to thucydides-use...@googlegroups.com.
To post to this group, send email to thucydid...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

John Smart

unread,
Aug 2, 2016, 9:20:23 PM8/2/16
to Богдан Ганжа, Harry King, Serenity BDD Users Group
Issues are tracked on Github (https://github.com/serenity-bdd/serenity-core/issues). However this sounds more like a WebDriver/Maven configuration issue than a Serenity one (since the version of Chrome you are using runs in your IDE). Can you run the tests from the command line on your local machine?

--
You received this message because you are subscribed to the Google Groups "Serenity BDD Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to thucydides-use...@googlegroups.com.

To post to this group, send email to thucydid...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
___________________________________________________
John Smart | Wakaleo Consulting  |  +44 7398 832273
Making smart teams collaborate better
http://johnfergusonsmart.com  |  john....@wakaleo.com
___________________________________________________

We love breaking down silos and helping smart teams collaborate better! Ask about our tailored on-site workshops in Agile Product Planning, BDD Requirements Discovery,  BDD, TDD and Clean Coding, and Advanced BDD Test Automation.
___________________________________________________

Богдан Ганжа

unread,
Aug 7, 2016, 8:14:54 AM8/7/16
to Serenity BDD Users Group, boda...@gmail.com, hazme...@gmail.com
Tests are run successfully from the command line on my local machine (Ubuntu 14.04 LTS).
Any thoughts? I'm at an impasse for now...

середа, 3 серпня 2016 р. 03:20:23 UTC+2 користувач John Smart написав:

Богдан Ганжа

unread,
Aug 21, 2016, 10:39:58 AM8/21/16
to Serenity BDD Users Group, hazme...@gmail.com
I've solved the issue finally. I execute jobs in headless mode.

Xvfb Jenkins plugin helped me. It starts before build, and stops after the build the Xvfb virtual framebuffer X11 server.

неділя, 7 серпня 2016 р. 14:14:54 UTC+2 користувач Богдан Ганжа написав:

80Vikram

unread,
Oct 7, 2016, 5:09:17 AM10/7/16
to Serenity BDD Users Group, hazme...@gmail.com
Hey,

Could you able to get this work with Chrome driver itself ?

Thanks in advance.

Regards,
Vikram

80Vikram

unread,
Oct 7, 2016, 8:55:09 AM10/7/16
to Serenity BDD Users Group, hazme...@gmail.com
I found 3 year old ticket https://java.net/jira/browse/THUCYDIDES-139

but didn't get this to fix yet , any help is appreciated.

Thanks,
Vikram

John Smart

unread,
Oct 7, 2016, 9:02:11 AM10/7/16
to 80Vikram, Serenity BDD Users Group, Harry King
This appears to be a chromedriver or OS-related issue, rather than a Serenity issue (most of the Serenity integration tests run on Chrome).

To unsubscribe from this group and stop receiving emails from it, send an email to thucydides-users+unsubscribe@googlegroups.com.
To post to this group, send email to thucydides-users@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

80Vikram

unread,
Oct 7, 2016, 9:25:13 AM10/7/16
to Serenity BDD Users Group, vikra...@gmail.com, hazme...@gmail.com
Thanks John,

This is related to bad configuration in jenkins from my side.

I had mvn clean and install step before running

mvn -e clean verify -Dautomation.email="xxxx" -Dautomation.password="xxx" -Drun.parallel=true -Dwebdriver.remote.url=http://xxx.xx.x.xx:4444/wd/hub -Dwebdriver.remote.driver=chrome -Dwebdriver.remote.os=LINUX

After removing mvn clean and install , it's working fine.



Regards,
Vikram
Reply all
Reply to author
Forward
0 new messages