【问题标题】:2.1.0 requires minimum docker version?2.1.0 需要最低 docker 版本吗?
【发布时间】:2018-09-12 21:09:07
【问题描述】:

我正在尝试评估 Selenium-Jupiter,但会遇到不同的问题和行为,具体取决于我使用的版本。

我正在使用 gradle 4.6 和

> docker version | grep API
API version:     1.24
API version:     1.24

当使用io.github.bonigarcia:selenium-jupiter:2.1.0

gradle clean test --info
...
 Caused by:
    io.github.bonigarcia.SeleniumJupiterException: io.github.bonigarcia.SeleniumJupiterException: com.spotify.docker.client.exceptions.ContainerNotFoundException: Container not found: c222d04fa9726606939b34d27565345d5462dbc9e6744e438a662099325c573a

        Caused by:
        io.github.bonigarcia.SeleniumJupiterException: com.spotify.docker.client.exceptions.ContainerNotFoundException: Container not found: c222d04fa9726606939b34d27565345d5462dbc9e6744e438a662099325c573a

            Caused by:
            com.spotify.docker.client.exceptions.ContainerNotFoundException: Container not found: c222d04fa9726606939b34d27565345d5462dbc9e6744e438a662099325c573a

                Caused by:
                com.spotify.docker.client.exceptions.DockerRequestException: Request error: POST unix://localhost:80/containers/c222d04fa9726606939b34d27565345d5462dbc9e6744e438a662099325c573a/start: 404, body: {"message":"invalid header field value \"oci runtime error: container_linux.go:247: starting container process caused \\\"exec: \\\\\\\"\\\\\\\": executable file not found in $PATH\\\"\\n\""}

                    Caused by:
                    javax.ws.rs.NotFoundException: HTTP 404 Not Found

当使用io.github.bonigarcia:selenium-jupiter:2.0.0

gradle clean test --info
...
 Caused by:
    io.github.bonigarcia.SeleniumJupiterException: io.github.bonigarcia.SeleniumJupiterException: org.openqa.selenium.WebDriverException: create container: Error response from daemon: client is newer than server (client API version: 1.30, server API version: 1.24) (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 31 milliseconds
    Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T18:33:54.468Z'
    System info: host: 'xxxx', ip: '10.167.6.18', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-514.21.1.el7.x86_64', java.version: '1.8.0_131'
    Driver info: driver.version: RemoteWebDriver

        Caused by:
        io.github.bonigarcia.SeleniumJupiterException: org.openqa.selenium.WebDriverException: create container: Error response from daemon: client is newer than server (client API version: 1.30, server API version: 1.24) (WARNING: The server did not provide any stacktrace information)
        Command duration or timeout: 31 milliseconds
        Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T18:33:54.468Z'
        System info: host: 'xxxx', ip: '10.167.6.18', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-514.21.1.el7.x86_64', java.version: '1.8.0_131'
        Driver info: driver.version: RemoteWebDriver

            Caused by:
            org.openqa.selenium.WebDriverException: create container: Error response from daemon: client is newer than server (**client API version: 1.30, server API version: 1.24**) (WARNING: The server did not provide any stacktrace information)
            Command duration or timeout: 31 milliseconds
            Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T18:33:54.468Z'
            System info: host: 'xxxx', ip: '10.167.6.18', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-514.21.1.el7.x86_64', java.version: '1.8.0_131'
            Driver info: driver.version: RemoteWebDriver

我假设 Selenium-Jupiter 和 Selenoid 之间的交互需要一些配置,例如 DOCKER_API_VERSION 如此处所述 http://aerokube.com/selenoid/latest/#_recommended_docker_settings 但我不知道从 Selenium-Jupiter 方面在哪里进行此配置。

我意识到这是一个相当模糊的呼救声,但希望至少有人能给我一些关于如何解决这个问题的提示。我真的很喜欢使用 Docker 进行这种虚拟化的想法,我认为我们的 GUI 测试确实可以从这样的解决方案中受益。

【问题讨论】:

    标签: selenium-jupiter


    【解决方案1】:

    您可以更改 Selenium-Jupiter 使用的 Docker API 的版本,如下所示:

    import org.junit.jupiter.api.BeforeAll;
    import org.junit.jupiter.api.Test;
    import org.junit.jupiter.api.extension.RegisterExtension;
    import org.openqa.selenium.WebDriver;
    
    import io.github.bonigarcia.seljup.SeleniumExtension;
    
    public class MyTest {
    
        @RegisterExtension
        static SeleniumExtension seleniumExtension = new SeleniumExtension();
    
        @BeforeAll
        static void setup() {
            seleniumExtension.getConfig().setDockerApiVersion("API-version"); // 1.35 by default
        }
    
        @Test
        void test(WebDriver driver) {
            // your test
        }
    
    }
    

    在撰写本文时,我将使用最新版本的 Selenium-Jupiter 3.1.0。

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 2022-12-14
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      相关资源
      最近更新 更多