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

WebDriver Manager can't find directory in container #586

Closed
maksim-c opened this issue Dec 14, 2020 · 4 comments
Closed

WebDriver Manager can't find directory in container #586

maksim-c opened this issue Dec 14, 2020 · 4 comments
Labels

Comments

@maksim-c
Copy link

maksim-c commented Dec 14, 2020

Description of the problem: I am using this lib throw serenity and localy all UI tests works fine. In Jenkins pipeline manager can't find directory "/etc/os-release"

Operating system: Red Hat Enterprise Linux 7.4

WebDriverManager version: 4.2.2

WebDriverManager use:

@Before("@ui")
    public static void doBeforeClass() {
        WebDriverManager.chromedriver().setup();
        OnStage.setTheStage(new OnlineCast());
    }

WebDriverManager traces: [Test worker] INFO io.github.bonigarcia.wdm.WebDriverManager - Reading https://chromedriver.storage.googleapis.com/ to seek chromedriver
[Test worker] INFO io.github.bonigarcia.wdm.cache.ResolutionCache - Clearing WebDriverManager resolution cache
[Test worker] WARN io.github.bonigarcia.wdm.WebDriverManager - There was an error managing chromedriver 87.0.4280.88 (/etc/os-release (No such file or directory)) ... trying again avoiding reading release from repository
[Test worker] INFO io.github.bonigarcia.wdm.WebDriverManager - Reading https://chromedriver.storage.googleapis.com/ to seek chromedriver
[Test worker] WARN io.github.bonigarcia.wdm.WebDriverManager - There was an error managing chromedriver (latest version) (/etc/os-release (No such file or directory)) ... trying again using latest driver stored in cache
[Test worker] INFO io.github.bonigarcia.wdm.WebDriverManager - Reading https://chromedriver.storage.googleapis.com/ to seek chromedriver
[Test worker] ERROR io.github.bonigarcia.wdm.WebDriverManager - There was an error managing chromedriver (latest version) (/etc/os-release (No such file or directory))
java.io.FileNotFoundException: /etc/os-release (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at java.io.FileReader.(FileReader.java:72)
at io.github.bonigarcia.wdm.online.UrlHandler.getDistroName(UrlHandler.java:218)
at io.github.bonigarcia.wdm.online.UrlHandler.filterByDistro(UrlHandler.java:172)
at io.github.bonigarcia.wdm.WebDriverManager.createUrlHandler(WebDriverManager.java:827)
at io.github.bonigarcia.wdm.WebDriverManager.download(WebDriverManager.java:649)
at io.github.bonigarcia.wdm.WebDriverManager.manage(WebDriverManager.java:567)
at io.github.bonigarcia.wdm.WebDriverManager.fallback(WebDriverManager.java:792)
at io.github.bonigarcia.wdm.WebDriverManager.handleException(WebDriverManager.java:773)
at io.github.bonigarcia.wdm.WebDriverManager.manage(WebDriverManager.java:573)
at io.github.bonigarcia.wdm.WebDriverManager.handleException(WebDriverManager.java:766)
at io.github.bonigarcia.wdm.WebDriverManager.manage(WebDriverManager.java:573)
at io.github.bonigarcia.wdm.WebDriverManager.setup(WebDriverManager.java:287)
at com.adidas.definitions.CucumberHooks.doBeforeClass(CucumberHooks.java:24)
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 io.cucumber.java.Invoker.doInvoke(Invoker.java:66)
at io.cucumber.java.Invoker.invokeStatic(Invoker.java:80)
at io.cucumber.java.AbstractGlueDefinition.invokeMethod(AbstractGlueDefinition.java:45)
at io.cucumber.java.JavaHookDefinition.execute(JavaHookDefinition.java:59)
at io.cucumber.core.runner.CoreHookDefinition.execute(CoreHookDefinition.java:46)
at io.cucumber.core.runner.HookDefinitionMatch.runStep(HookDefinitionMatch.java:21)
at io.cucumber.core.runner.ExecutionMode$1.execute(ExecutionMode.java:10)
at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:92)
at io.cucumber.core.runner.TestStep.run(TestStep.java:64)
at io.cucumber.core.runner.TestCase.run(TestCase.java:98)
at io.cucumber.core.runner.Runner.runPickle(Runner.java:71)
at io.cucumber.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:151)
at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:135)
at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:27)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at io.cucumber.junit.CucumberSerenityRunner.runChild(CucumberSerenityRunner.java:234)
at io.cucumber.junit.CucumberSerenityRunner.runChild(CucumberSerenityRunner.java:57)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at io.cucumber.junit.CucumberSerenityRunner$RunCucumber.evaluate(CucumberSerenityRunner.java:262)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
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.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:118)
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.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.lang.Thread.run(Thread.java:748)

@bonigarcia bonigarcia added the bug label Dec 18, 2020
@bonigarcia
Copy link
Owner

It looks like a bug. Thanks for reporting. I am going to look into it. Maybe I will remove the distro detection for the next release (since it was only required to PhantomJS, which is, in any case, a deprecated headless browser).

@maksim-c
Copy link
Author

Thank you! Continue working with 3.7.1 version. It works fine for me

@vedydev
Copy link

vedydev commented Jan 12, 2021

This can be related too, using the latest version.
When deployed in AWS EBS, it seems the webdrivers either not detected or not downloaded.
EBS launches an EC2 instance , I'm not sure if it runs the application inside a docker container in that EC2 environment .
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Java.html
I can add environment variables before deploying the application that point to the location of the webdrivers if known, does this seem like the only solution for now?

@bonigarcia
Copy link
Owner

I have just released WebDriverManager 4.3.0. This issue should be fixed in that version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants