Селен с хромом в докере выбрасывает исключение - PullRequest
0 голосов
/ 05 июня 2018

У меня есть приложение Java, которое использует селен с Google Chrome в Docker, вот мой файл Docker, когда я запускаю приложение в Docket, оно длится 30-40 секунд и выдает исключения.Я пробовал другую версию селена, но у меня была та же проблема.

FROM openjdk:8

# Install Chrome
RUN wget --no-check-certificate -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub |  apt-key add -
RUN echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' |  tee /etc/apt/sources.list.d/google-chrome.list
RUN  apt-get update
RUN apt-get --assume-yes install google-chrome-stable

ADD target/Scraper-1.jar Scraper-1.jar

EXPOSE 8080
ENTRYPOINT ["java", "-jar", "-Xmx1700m",  "Scraper-1.jar"]

вот код java

 WebDriverManager.chromedriver().setup();
  WebDriver webDriver = new ChromeDriver(options);
  log.info("init is complete ");
  webDriver.get(URL);

и исключение

05-06-2018 12:46:18.551 [http-nio-8080-exec-7] INFO  i.g.bonigarcia.wdm.WebDriverManager.forceCache - Found chromedriver in cache: /root/.m2/repository/webdriver/chromed
river/linux64/2.39/chromedriver
05-06-2018 12:46:18.553 [http-nio-8080-exec-7] INFO  i.g.bonigarcia.wdm.WebDriverManager.exportDriver - Exporting webdriver.chrome.driver as /root/.m2/repository/webdriv
er/chromedriver/linux64/2.39/chromedriver
Starting ChromeDriver 2.39.562737 (dba483cee6a5f15e2e2d73df16968ab10b38a2bf) on port 32161
Only local connections are allowed.
05-06-2018 12:47:18.636 [http-nio-8080-exec-7] ERROR c.r.s.e.GlobalExceptionHandler.handleException - GlobalExceptionHandler
org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
  (Driver info: chromedriver=2.39.562737 (dba483cee6a5f15e2e2d73df16968ab10b38a2bf),platform=Linux 4.9.87-linuxkit-aufs x86_64) (WARNING: The server did not provide any
stacktrace information)
Command duration or timeout: 60.05 seconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: '7ce14c6d696d', ip: '172.17.0.3', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.87-linuxkit-aufs', java.version: '1.8.0_171'
Driver info: driver.version: ChromeDriver
        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:138)
        at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
        at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219)
        at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:142)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157)

Код отлично работает в локальной среде (windows),

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...