Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

commandline switches to execute on BrowserStack gives NoClassFoundError. #1223

Closed
rahulkulkarniyahoo opened this issue Apr 26, 2018 · 5 comments

Comments

@rahulkulkarniyahoo
Copy link

rahulkulkarniyahoo commented Apr 26, 2018

Hello,
I execute my automation tests with Serenity. Execution of code on my local machine works! When I add command line switces to execute the same code on BrowserStack, it fails and gives me error. Can you please let me know where I have gone wrong or misconfigured?

CommandLine Switch Statment
mvn clean install -Dbrowserstack.url=http://myNAME:myKEY@hub-cloud.browserstack.com/wd/hub -Dbrowserstack.os="OS X" -Dbrowserstack.os_version="High Sierra" -Dbrowserstack.browser=Chrome -Dbrowserstack.browser_version=61.0 -Dbrowserstack.build=rahul_auto_Mates -Dcucumber.options="--tags @tc23" -DEnvironment=qa

Error Message
@regression @tc23 @QAapp
Scenario Outline: Forgot Password, Error message returned when not valid @tc23 # QA_APP.feature:80
Given I am on CampusM QA App # StepDefinitions.i_am_on_CampusM_QA_App()
java.lang.NoClassDefFoundError: org/apache/maven/surefire/booter/SurefireExecutionException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at net.thucydides.core.webdriver.capabilities.BrowserStackRemoteDriverCapabilities.bestGuessOfTestName(BrowserStackRemoteDriverCapabilities.java:58)
at net.thucydides.core.webdriver.capabilities.BrowserStackRemoteDriverCapabilities.configureBrowserStackCapabilities(BrowserStackRemoteDriverCapabilities.java:45)
at net.thucydides.core.webdriver.capabilities.BrowserStackRemoteDriverCapabilities.getCapabilities(BrowserStackRemoteDriverCapabilities.java:40)
at net.serenitybdd.core.webdriver.driverproviders.RemoteDriverProvider.findbrowserStackCapabilities(RemoteDriverProvider.java:124)
at net.serenitybdd.core.webdriver.driverproviders.RemoteDriverProvider.buildBrowserStackDriver(RemoteDriverProvider.java:99)
at net.serenitybdd.core.webdriver.driverproviders.RemoteDriverProvider.newInstance(RemoteDriverProvider.java:69)
at net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:126)
at net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:144)
at net.thucydides.core.webdriver.WebDriverFacade.newProxyDriver(WebDriverFacade.java:135)
at net.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver(WebDriverFacade.java:105)
at net.thucydides.core.webdriver.WebDriverFacade.openIgnoringHtmlUnitScriptErrors(WebDriverFacade.java:180)
at net.thucydides.core.webdriver.WebDriverFacade.get(WebDriverFacade.java:175)
at com.exlibrisgroup.pages.ProfilePage.openWebsite(ProfilePage.java:130)
at com.exlibrisgroup.campusm.StepDefinitions.i_am_on_CampusM_QA_App(StepDefinitions.java:195)
at ✽.Given I am on CampusM QA App(QA_APP.feature:72)
Caused by: java.lang.ClassNotFoundException: org.apache.maven.surefire.booter.SurefireExecutionException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at net.thucydides.core.webdriver.capabilities.BrowserStackRemoteDriverCapabilities.bestGuessOfTestName(BrowserStackRemoteDriverCapabilities.java:58)
at net.thucydides.core.webdriver.capabilities.BrowserStackRemoteDriverCapabilities.configureBrowserStackCapabilities(BrowserStackRemoteDriverCapabilities.java:45)
at net.thucydides.core.webdriver.capabilities.BrowserStackRemoteDriverCapabilities.getCapabilities(BrowserStackRemoteDriverCapabilities.java:40)
at net.serenitybdd.core.webdriver.driverproviders.RemoteDriverProvider.findbrowserStackCapabilities(RemoteDriverProvider.java:124)
at net.serenitybdd.core.webdriver.driverproviders.RemoteDriverProvider.buildBrowserStackDriver(RemoteDriverProvider.java:99)
at net.serenitybdd.core.webdriver.driverproviders.RemoteDriverProvider.newInstance(RemoteDriverProvider.java:69)
at net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:126)
at net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:144)
at net.thucydides.core.webdriver.WebDriverFacade.newProxyDriver(WebDriverFacade.java:135)
at net.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver(WebDriverFacade.java:105)
at net.thucydides.core.webdriver.WebDriverFacade.openIgnoringHtmlUnitScriptErrors(WebDriverFacade.java:180)
at net.thucydides.core.webdriver.WebDriverFacade.get(WebDriverFacade.java:175)
at com.exlibrisgroup.pages.ProfilePage.openWebsite(ProfilePage.java:130)
at com.exlibrisgroup.campusm.StepDefinitions.i_am_on_CampusM_QA_App(StepDefinitions.java:195)
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.JavaStepDefinition.execute(JavaStepDefinition.java:38)
at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
at cucumber.runtime.Runtime.runStep(Runtime.java:300)
at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:102)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
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.ExamplesRunner.run(ExamplesRunner.java:59)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
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.ScenarioOutlineRunner.run(ScenarioOutlineRunner.java:53)
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.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
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:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
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 org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:208)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:155)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:81)
at org.apache.maven.plugin.surefire.InPluginVMSurefireStarter.runSuitesInProcess(InPluginVMSurefireStarter.java:82)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:974)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:824)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:722)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
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 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

POM File


4.0.0

<groupId>com.xx.xxx</groupId>
<artifactId>regression-tests-poc</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>regression-tests-poc</name>
<url>http://maven.apache.org</url>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <serenity.version>1.5.0-rc.1</serenity.version>
    <serenity.maven.version>1.9.12</serenity.maven.version>
    <browserstack.local.version>0.1.0</browserstack.local.version>
    <Environment></Environment>
</properties>

<dependencies>
    <dependency>
        <groupId>com.browserstack</groupId>
        <artifactId>browserstack-local-java</artifactId>
        <version>${browserstack.local.version}</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-cucumber</artifactId>
        <version>1.1.14</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>1.2.5</version>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-core</artifactId>
        <version>1.2.5</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.22</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-core</artifactId>
        <version>${serenity.version}</version>
    </dependency>
    <dependency>
        <groupId>com.lazerycode.jmeter</groupId>
        <artifactId>jmeter-maven-plugin</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>net.thucydides</groupId>
        <artifactId>thucydides-jbehave-plugin</artifactId>
        <version>0.9.275</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-junit</artifactId>
        <version>1.1.36</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>core</artifactId>
        <version>1.0.47</version>
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.18</version>
            <configuration>
                <includes>
                    <include>**/**/**/*.java</include><!-- or use feature -->
                </includes>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.3</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-plugin-plugin</artifactId>
            <version>3.5</version>
            <executions>
                <execution>
                    <id>default-descriptor</id>
                    <phase>process-classes</phase>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
            <configuration>
                <testFailureIgnore>true</testFailureIgnore>
                <systemProperties>
                    <property>
                        <name>Environment</name>
                        <value>${Environment}</value>
                    </property>
                    <!--<webdriver.driver>firefox</webdriver.driver>
                    <webdriver.gecko.driver>${project.basedir}/src/test/resources/windows/64Bit/geckodriver.exe</webdriver.gecko.driver>-->

                    <!-- MAC -->
                    <webdriver.driver>chrome</webdriver.driver>
                    <webdriver.chrome.driver>${project.basedir}/src/test/resources/mac/chromedriver</webdriver.chrome.driver>
                    <!--<webdriver.driver>iexplorer</webdriver.driver>
                    <webdriver.ie.driver>${project.basedir}/src/test/resources/windows/64Bit/IEDriverServer.exe</webdriver.ie.driver> -->
                    <!-- LINUX-->
                    <!--<webdriver.driver>chrome</webdriver.driver>-->
                    <!--<webdriver.chrome.driver>${project.basedir}/src/test/resources/linux/64bit/chromedriver64linux</webdriver.chrome.driver>-->
                    <!--<webdriver.driver>firefox</webdriver.driver>
                    <webdriver.gecko.driver>${project.basedir}/src/test/resources/linux/64Bit/geckodriverv17</webdriver.gecko.driver> -->
                    <!--<webdriver.chrome.driver>/exlibris/jenkins/tools/chrome-driver/chromedriver</webdriver.chrome.driver> -->
                </systemProperties>
                <forkCount>0</forkCount>
            </configuration>
        </plugin>
        <plugin>
            <groupId>net.serenity-bdd.maven.plugins</groupId>
            <artifactId>serenity-maven-plugin</artifactId>
            <version>1.9.12</version>
            <dependencies>
                <dependency>
                    <groupId>net.serenity-bdd</groupId>
                    <artifactId>serenity-core</artifactId>
                    <version>${serenity.version}</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <id>serenity-reports</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>aggregate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!--<plugin>-->
            <!--<groupId>com.lazerycode.jmeter</groupId>-->
            <!--<artifactId>jmeter-maven-plugin</artifactId>-->
            <!--<version>2.6.0</version>-->
            <!--<executions>-->
                <!--<execution>-->
                    <!--<id>jmeter-tests</id>-->
                    <!--<goals>-->
                        <!--<goal>jmeter</goal>-->
                    <!--</goals>-->
                <!--</execution>-->
            <!--</executions>-->
        <!--</plugin>-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>
@wakaleo
Copy link
Member

wakaleo commented Apr 26, 2018

This looks like a usage error - there are many issues with your pom (conflicting versions of serenity libraries, compile target of 1.7 which may conflict with Serenity's requirement to use 1.8...). Fix these first. If that doesn't help, ask for help on https://serenity-bdd.rocket.chat.

@rahulkulkarniyahoo
Copy link
Author

rahulkulkarniyahoo commented Apr 26, 2018

Thanks @wakaleo
I will revert on findings.
Any chance of providing me location for the correct pom configuration?

@wakaleo
Copy link
Member

wakaleo commented Apr 26, 2018

The Serenity JUnit and Cucumber are usually reasonably up to date: http://github.com/serenity-bdd/serenity-junit-starter/blob/master/pom.xml

@rahulkulkarniyahoo
Copy link
Author

rahulkulkarniyahoo commented Apr 30, 2018

I tried the cucumber-java-skelelton. using the pom file noted here, i can execute my code locally with the command line switches:
mvn clean install -Dcucumber.options="--tags @tc23" -DEnvironment=qa

Executes test case with tag @tc23 in the featur file, launches firefox. No problemo!

I want to execute the same test case on browser stack. As per the documentation, i used the following switches:
mvn clean install -Dbrowserstack.url=http://myNAME:myKEY@hub-cloud.browserstack.com/wd/hub -Dbrowserstack.os="OS X" -Dbrowserstack.os_version="High Sierra" -Dbrowserstack.browser=Chrome -Dbrowserstack.browser_version=61.0 -Dbrowserstack.build=rahul_auto_command -Dcucumber.options="--tags @tc23" -Dbrowserstack.name="Rahul Names" -DEnvironment=qa

I get the following error:

Scenario Outline: Forgot Password, Error message returned when not valid @tc23 # src/test/resources/features/qa_app.feature:22
[pool-1-thread-1] ERROR net.serenitybdd.core.Serenity -
__ _____ _____ ____ _____ _____ _ ___ _ _____ ____
_ / / |_ | / | _| | / \ | _| | | ___| _ \
(
)
| | | | | | _ \ | | | |
/ _ \ | || | | | | | | |
|| | | | | | ) || | | / ___ \ | || || || || |
(
) | | |
| |_____|
/ || ||// __||__|____/
_\

TEST FAILED WITH ERROR: Forgot Password, Error message returned when not valid @tc23

[pool-1-thread-1] ERROR net.serenitybdd.core.Serenity - TEST FAILED AT STEP Given I am on CampusM QA App
[pool-1-thread-1] ERROR net.serenitybdd.core.Serenity - Could not instantiate new WebDriver instance of type class org.openqa.selenium.firefox.FirefoxDriver (OS/Browser combination invalid: {"acceptInsecureCerts"=>true, "browser"=>"firefox", "browserName"=>"firefox", "browser_version"=>"61.0", "browserstack.browser"=>"firefox", "browserstack.browser_version"=>"61.0", "browserstack.build"=>"rahul_auto_command", "browserstack.name"=>"Rahul Names", "browserstack.os"=>"OS X", "browserstack.os_version"=>"High Sierra", "browserstack.url"=>"http://nyNAME:myKEY@hub-cloud.browserstack.com/wd/hub", "build"=>"rahul_auto_command", "name"=>"Rahul Names", "os"=>"OS X", "os_version"=>"High Sierra", "url"=>"http://rahulkulkarni2:AskpYQektR22bXFT7Zd8@hub-cloud.browserstack.com/wd/hub", "acceptSslCert"=>false, "language"=>"okhttp/3.9.1"} (WARNING: The server did not provide any stacktrace information)

Failed scenarios:
src/test/resources/features/qa_app.feature:22 # Forgot Password, Error message returned when not valid @tc23

1 Scenarios (1 failed)
5 Steps (1 failed, 4 skipped)
0m3.265s

net.thucydides.core.webdriver**.UnsupportedDriverException: Could not instantiate class org.openqa.selenium.firefox.FirefoxDriver**
at net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:153)
at net.thucydides.core.webdriver.WebDriverFacade.newProxyDriver(WebDriverFacade.java:140)
at net.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver(WebDriverFacade.java:110)
at net.thucydides.core.webdriver.WebDriverFacade.get(WebDriverFacade.java:181)
at pages.ProfilePage.openWebsite(ProfilePage.java:121)
at bs_local_serenity.StepDefinitions.i_am_on_CampusM_QA_App(StepDefinitions.java:64)
at ✽.I am on CampusM QA App(src/test/resources/features/qa_app.feature:14)
Caused by: net.thucydides.core.webdriver.UnsupportedDriverException: Could not instantiate new WebDriver instance of type class org.openqa.selenium.firefox.FirefoxDriver (OS/Browser combination invalid: {"acceptInsecureCerts"=>true, "browser"=>"firefox", "browserName"=>"firefox", "browser_version"=>"61.0", "browserstack.browser"=>"firefox", "browserstack.browser_version"=>"61.0", "browserstack.build"=>"rahul_auto_command", "browserstack.name"=>"Rahul Names", "browserstack.os"=>"OS X", "browserstack.os_version"=>"High Sierra", "browserstack.url"=>"http://rnyNAME:myKEY@hub-cloud.browserstack.com/wd/hub", "build"=>"rahul_auto_command", "name"=>"Rahul Names", "os"=>"OS X", "os_version"=>"High Sierra", "url"=>"http://rahulkulkarni2:AskpYQektR22bXFT7Zd8@hub-cloud.browserstack.com/wd/hub", "acceptSslCert"=>false, "language"=>"okhttp/3.9.1"} (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 878 milliseconds
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z'
System info: host: 'Rahuls-MacBook-Pro.local', ip: 'fe80:0:0:0:1410:7d0c:bff3:4ef2%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '1.8.0_131'
Driver info: driver.version: RemoteWebDriver
at net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:136)
at net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance(WebDriverFacade.java:149)
at net.thucydides.core.webdriver.WebDriverFacade.newProxyDriver(WebDriverFacade.java:140)
at net.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver(WebDriverFacade.java:110)
at net.thucydides.core.webdriver.WebDriverFacade.get(WebDriverFacade.java:181)
at pages.ProfilePage.openWebsite(ProfilePage.java:121)
at bs_local_serenity.StepDefinitions.i_am_on_CampusM_QA_App(StepDefinitions.java:64)
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:32)
at cucumber.runtime.Timeout.timeout(Timeout.java:16)
at cucumber.runtime.Utils.invoke(Utils.java:26)
at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:37)
at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:40)
at cucumber.api.TestStep.executeStep(TestStep.java:102)
at cucumber.api.TestStep.run(TestStep.java:83)
at cucumber.api.TestCase.run(TestCase.java:58)
at cucumber.runner.Runner.runPickle(Runner.java:80)
at cucumber.runtime.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:140)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:68)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:23)
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:73)
at cucumber.api.junit.Cucumber.runChild(Cucumber.java:117)
at cucumber.api.junit.Cucumber.runChild(Cucumber.java:55)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.apache.maven.surefire.junitcore.pc.Scheduler$1.run(Scheduler.java:393)
at org.apache.maven.surefire.junitcore.pc.InvokerStrategy.schedule(InvokerStrategy.java:54)
at org.apache.maven.surefire.junitcore.pc.Scheduler.schedule(Scheduler.java:352)
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 cucumber.api.junit.Cucumber$1.evaluate(Cucumber.java:126)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.apache.maven.surefire.junitcore.pc.Scheduler$1.run(Scheduler.java:393)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.openqa.selenium.WebDriverException: OS/Browser combination invalid: {"acceptInsecureCerts"=>true, "browser"=>"firefox", "browserName"=>"firefox", "browser_version"=>"61.0", "browserstack.browser"=>"firefox", "browserstack.browser_version"=>"61.0", "browserstack.build"=>"rahul_auto_command", "browserstack.name"=>"Rahul Names", "browserstack.os"=>"OS X", "browserstack.os_version"=>"High Sierra", "browserstack.url"=>"nyNAME:myKEY@hub-cloud.browserstack.com/wd/hub", "build"=>"rahul_auto_command", "name"=>"Rahul Names", "os"=>"OS X", "os_version"=>"High Sierra", "url"=>"http://rahulkulkarni2:AskpYQektR22bXFT7Zd8@hub-cloud.browserstack.com/wd/hub", "acceptSslCert"=>false, "language"=>"okhttp/3.9.1"} (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 878 milliseconds
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z'
System info: host: 'Rahuls-MacBook-Pro.local', ip: 'fe80:0:0:0:1410:7d0c:bff3:4ef2%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '1.8.0_131'
Driver info: driver.version: RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$new$0(JsonWireProtocolResponse.java:53)
at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2(JsonWireProtocolResponse.java:91)
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:545)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:209)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:132)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:145)
at net.serenitybdd.core.webdriver.driverproviders.RemoteDriverBuilder.newRemoteDriver(RemoteDriverBuilder.java:63)
at net.serenitybdd.core.webdriver.driverproviders.BrowserStackDriverBuilder.buildWithOptions(BrowserStackDriverBuilder.java:27)
at net.serenitybdd.core.webdriver.driverproviders.RemoteDriverProvider.newInstance(RemoteDriverProvider.java:53)
at net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(WebDriverFactory.java:126)
... 49 more


POM FILE


4.0.0

<groupId>bs_local_serenity</groupId>
<artifactId>web_qaapp</artifactId>
<version>1.0-SNAPSHOT</version>

<name>web_qaapp</name>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <serenity.version>1.9.12</serenity.version>
    <serenity.maven.version>1.9.12</serenity.maven.version>
    <serenity.cucumber.version>1.9.5</serenity.cucumber.version>
    <encoding>UTF-8</encoding>
    <tags></tags>
    <parallel.tests>4</parallel.tests>
    <webdriver.base.url></webdriver.base.url>
    <Environment></Environment>
</properties>

<repositories>
    <repository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>bintray</name>
        <url>http://jcenter.bintray.com</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>bintray-plugins</name>
        <url>http://jcenter.bintray.com</url>
    </pluginRepository>
</pluginRepositories>

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.7</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-core</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-junit</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-screenplay</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-screenplay-webdriver</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-cucumber</artifactId>
        <version>${serenity.cucumber.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>3.6.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.20</version>
            <configuration>
                <includes>
                    <include>**/*Test.java</include>
                    <include>**/Test*.java</include>
                    <include>**/*TestSuite.java</include>
                    <include>**/When*.java</include>
                </includes>
                <!-- My Additions -->
                <testFailureIgnore>true</testFailureIgnore>
                <systemProperties>
                    <property>
                        <name>Environment</name>
                        <value>${Environment}</value>
                    </property>
                    <!--&lt;!&ndash; MAC &ndash;&gt;-->
                    <!--<webdriver.driver>chrome</webdriver.driver>-->
                    <!--<webdriver.chrome.driver>${project.basedir}/src/test/resources/mac/chromedriver-->
                    <!--</webdriver.chrome.driver>-->
                </systemProperties>
                <!-- My Additions ENDS -->
                <systemPropertyVariables>
                    <webdriver.base.url>${webdriver.base.url}</webdriver.base.url>
                </systemPropertyVariables>
                <parallel>classes</parallel>
                <threadCount>${parallel.tests}</threadCount>
                <forkCount>${parallel.tests}</forkCount>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>net.serenity-bdd.maven.plugins</groupId>
            <artifactId>serenity-maven-plugin</artifactId>
            <version>${serenity.maven.version}</version>
            <configuration>
                <tags>${tags}</tags>
            </configuration>
            <executions>
                <execution>
                    <id>serenity-reports</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>aggregate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
--------------------------------------------------------- NOTE ------------------------------------------------------- As you can note, in the error, the local machine browser launch is being attempted. This may not be the right behaviour, as the code needs to execute on BrowserStack. Browserstack remote url is not attempted.

@wakaleo
Copy link
Member

wakaleo commented May 13, 2018

"Could not instantiate new WebDriver instance of type class org.openqa.selenium.firefox.FirefoxDriver" means that the firefox driver could not be started on Browerstack. This is usually due to missing or incompatible Browserstack configuration options.

@wakaleo wakaleo closed this as completed Feb 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants