Java maven selenium webdriver不在docker容器中工作

问题描述 投票:0回答:1

我有一个maven构建,正在我的Mac上工作,但我试图放入docker容器。我正在使用基础maven:3.5-jdk-9-slim docker容器。

mvn clean verify -Dbrowser.name = phantomjs -X -e

直到最近,我才升级到使用java 9.我不认为我安装了任何特定于Web驱动程序的东西,所以不确定为什么我会得到这个堆栈跟踪。我以为maven会照顾好这一切。 Google搜索没有为我找到任何简单的解决方案。关于我的容器中缺少什么的任何想法????

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass$3$1 (file:/root/.m2/repository/org/codehaus/groovy/groovy/2.4.6/groovy-2.4.6.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass$3$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
/atdd/src/test/resources/bin/mac/phantomjs: 1: /atdd/src/test/resources/bin/mac/phantomjs: Syntax error: Unterminated quoted string
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 23.673 sec <<< FAILURE! - in net.xeric.demos.DemoApplicationTests
contextLoads(net.xeric.demos.DemoApplicationTests)  Time elapsed: 0.019 sec  <<< ERROR!
java.lang.IllegalStateException: Failed to load ApplicationContext
    ......
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'demoPage' defined in file [/atdd/target/test-classes/net/xeric/demos/pages/DemoPage.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.openqa.selenium.WebDriver]: Error creating bean with name 'getWebDriver' defined in class path resource [net/xeric/demos/TestConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.openqa.selenium.WebDriver]: Factory method 'getWebDriver' threw exception; nested exception is org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
System info: host: '1786321beb2b', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.60-linuxkit-aufs', java.version: '9.0.1'
Driver info: driver.version: PhantomJSDriver; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getWebDriver' defined in class path resource [net/xeric/demos/TestConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.openqa.selenium.WebDriver]: Factory method 'getWebDriver' threw exception; nested exception is org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
System info: host: '1786321beb2b', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.60-linuxkit-aufs', java.version: '9.0.1'
Driver info: driver.version: PhantomJSDriver
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
    ......
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getWebDriver' defined in class path resource [net/xeric/demos/TestConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.openqa.selenium.WebDriver]: Factory method 'getWebDriver' threw exception; nested exception is org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
System info: host: '1786321beb2b', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.60-linuxkit-aufs', java.version: '9.0.1'
Driver info: driver.version: PhantomJSDriver
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
   ......
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.openqa.selenium.WebDriver]: Factory method 'getWebDriver' threw exception; nested exception is org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
System info: host: '1786321beb2b', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.60-linuxkit-aufs', java.version: '9.0.1'
Driver info: driver.version: PhantomJSDriver
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
   ......
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
System info: host: '1786321beb2b', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.60-linuxkit-aufs', java.version: '9.0.1'
Driver info: driver.version: PhantomJSDriver
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:192)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178)
    at org.openqa.selenium.phantomjs.PhantomJSCommandExecutor.execute(PhantomJSCommandExecutor.java:78)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:646)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:255)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:237)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:138)
    at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:116)
    at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:105)
    at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:95)
    at net.xeric.demos.TestConfig.getWebDriver(TestConfig.java:29)
    at net.xeric.demos.TestConfig$$EnhancerBySpringCGLIB$$7a81f897.CGLIB$getWebDriver$0(<generated>)
    at net.xeric.demos.TestConfig$$EnhancerBySpringCGLIB$$7a81f897$$FastClassBySpringCGLIB$$64edc4da.invoke(<generated>)
 .....      
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:3437/status] to be available after 20004 ms
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:102)
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187)
    ......
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: java.util.concurrent.TimeoutException: null
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:204)
at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:147)
at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:77)
at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187)
java maven selenium-webdriver
1个回答
0
投票

在selenium + Maven +容器的上下文中,Java 9在这个时间点并不是一个稳定的选择。回到java 8。

还要确保您的容器中安装了所需的浏览器,前提是它与webdriver版本兼容。

© www.soinside.com 2019 - 2024. All rights reserved.