【问题标题】:want to do dusk test with docker alpine想用 docker alpine 做黄昏测试
【发布时间】:2018-09-22 17:25:38
【问题描述】:

现在尝试在 docker alpine 中测试 laravel/dusk。 但是当我设置时,遇到了以下错误。

Facebook\WebDriver\Exception\WebDriverCurlException:抛出卷曲错误 对于带有参数的 http POST 到 /session: {"desiredCapabilities":{"browserName":"phantomjs","platform":"ANY"}}

无法连接到 localhost 端口 4444:连接被拒绝


源代码设置如下。 测试/DuskTestCase.php

<?php

namespace Tests;

use Laravel\Dusk\TestCase as BaseTestCase;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;

abstract class DuskTestCase extends BaseTestCase
{
    use CreatesApplication;

    /**
     * Prepare for Dusk test execution.
     *
     * @beforeClass
     * @return void
     */
    public static function prepare()
    {
        //static::startChromeDriver();
    }

    /**
     * Create the RemoteWebDriver instance.
     *
     * @return \Facebook\WebDriver\Remote\RemoteWebDriver
     */
     protected function driver()
     {
         return RemoteWebDriver::create(
             'http://localhost:4444/wd/hub', DesiredCapabilities::phantomjs()
         );
     }
}

非常感谢您的阅读。

【问题讨论】:

  • 如何在 4444 端口上启动 Web 驱动程序。这是通过docker命令还是docker compose。请分享详细信息。

标签: laravel-5


【解决方案1】:

这确实是多种事物的结合。您需要覆盖 Dusk 附带的 chromedriver-linux 二进制文件,因为它与 alpine 映像不兼容。 它在你的 Dockerfile 中应该是这样的:

RUN apk update && apk upgrade \
    && echo @edge http://nl.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories \
    && echo @edge http://nl.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories \
    && apk add --no-cache \
    chromium@edge \
    chromium-chromedriver@edge \
    xvfb \
    nss@edge \
    && rm -rf /var/lib/apt/lists/* \
    /var/cache/apk/* \
    /usr/share/man \
    /tmp/*

RUN rm /var/www/html/vendor/laravel/dusk/bin/chromedriver-linux \
&& ln -s /usr/bin/chromedriver /var/www/html/vendor/laravel/dusk/bin/chromedriver-linux \ 
&& ln -s /usr/bin/chromium-browser /usr/bin/chrome

在你的 start.sh 中你使用:

Xvfb :99 &
RUN export DISPLAY=:99

这将启动一个无头显示,因此 chrome 可以在您的容器内实际运行无头显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2018-01-21
    • 2017-07-27
    • 2019-01-16
    • 1970-01-01
    相关资源
    最近更新 更多