Laravel Dusk错误:无法连接到localhost端口9515:连接被拒绝

Ort*_*x92 37 php virtualbox vagrant laravel homestead

正如标题所说,我已经完全安装了Laravel 5.4和最新的Homestead(1.0.1).但是,当我运行一个简单的Dusk测试用例时,我收到以下错误:

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

有谁知道如何处理这个?我尝试将端口更改为其他东西,例如8888无济于事.

编辑:我已经能够深入挖掘并发现chromedriver可执行文件实际上不是可执行的(chmod).现在我已经修复了当我手动尝试运行它时出现此错误.

./chromedriver:加载共享库时出错:libnss3.so:无法打开共享对象文件:没有这样的文件或目录

小智 14

对于那些在 Mac 上寻找解决方案的人来说,我只需要重新启动 Chrome 即可。是的,Chrome,浏览器。似乎有一个待更新(右上角有说明)。

重新启动它,然后再启动chromedriver,一切顺利


Sim*_*hin 5

我今天遇到了这个问题,解决方案是Laracasts。

\n\n

这是一份副本。

\n\n
# makes sure all your repos are up to date\nsudo apt-get update\n\n# chrome dependencies I think\nsudo apt-get -y install libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4\n\n# chromium is what I had success with on Codeship, so seemed a good option\nsudo apt-get install chromium-browser\n\n# XVFB for headless applications\nsudo apt-get -y install xvfb gtk2-engines-pixbuf\n\n# fonts for the browser\nsudo apt-get -y install xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base         xfonts-scalable\n\n# support for screenshot capturing\nsudo apt-get -y install imagemagick x11-apps\n\n# Once all this has run through, you need to fire up xvfb on your homestead box. If you\xe2\x80\x99re planning to # do this on a regular basis, you\xe2\x80\x99ll want to get this setup on boot, but for the sake of testing things out:\nXvfb -ac :0 -screen 0 1280x1024x16 &\n
Run Code Online (Sandbox Code Playgroud)\n


ste*_*oen 3

在 Ubuntu Linux 16.04 上,我得到了这个工作:

安装 Chromium 和依赖项以进行无头测试

sudo apt-get -y install chromium-browser xvfb gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable imagemagick x11-apps

创建自定义DuskCommand

使用以下handle方法扩展了原始方法:

public function handle()
{
    $xvfb = (new ProcessBuilder())
        ->setTimeout(null)
        ->setPrefix('/usr/bin/Xvfb')
        ->setArguments(['-ac',  ':0', '-screen', '0', '1280x1024x16'])
        ->getProcess();

    $xvfb->start();

    try {
        parent::handle();
    } finally {
        $xvfb->stop();
    }

    return;
}
Run Code Online (Sandbox Code Playgroud)

这将在执行测试之前启动 Xvfb 进行无头测试,并在测试完成后停止该过程。

编辑:并确保vendor/laravel/dusk/bin/chromedriver-linux可执行。