php - Laravel Dusk - 无法连接到本地主机端口 9515 : Connection refused

标签 php laravel testing phpunit laravel-dusk

我想创建一个我将从 Controller 使用的测试,所以我这样写:

<?php

namespace App\Http\Controllers\Modules;
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Laravel\Dusk\ElementResolver;
use Exception;

use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Laravel\Dusk\Browser;
use Laravel\Dusk\Chrome\ChromeProcess;

class TestController extends Controller {



  public function test() {

    $process = (new ChromeProcess)->toProcess();
    if ($process->isStarted()) {
      $process->stop();
    }
    $process->start();

    $options      = (new ChromeOptions)->addArguments(['--disable-gpu', '--headless', '--no-sandbox']);
    $capabilities = DesiredCapabilities::chrome()
      ->setCapability(ChromeOptions::CAPABILITY, $options);

          $driver = retry(1, function () use ($capabilities) {
      return RemoteWebDriver::create('http://localhost:9515', $capabilities, 60000, 60000);
    }, 50);

    $browser = new Browser($driver, new ElementResolver($driver, ''));
    $browser->resize(1920, 1080);
    $browser->visit('https://example.com/login')->click('#.btn > form > div.auth-form-body.mt-3 > input.btn.btn-primary.btn-block');
    $browser->driver->takeScreenshot(base_path('tests/Browser/screenshots/logged.png'));

  }


}

当我使用 localhost:8000/test 运行这个脚本时,我收到了这条消息:

Facebook \ WebDriver \ Exception \ WebDriverCurlException Curl error thrown for http POST to /session with params: {"desiredCapabilities":{"browserName":"chrome","platform":"ANY","chromeOptions":{"binary":"","args":["--disable-gpu","--headless","--no-sandbox"]}}} Failed to connect to localhost port 9515: Connection refused

enter image description here

我该如何解决这个问题?

目前我在 Win10 上使用 WAMP 服务器进行本地测试,但随后我将在 Linux Ubuntu 18 上移动代码。

最佳答案

我无法完全解释,但这对我在 Windows 上有效:

$process = (new ChromeProcess)->toProcess();
if ($process->isStarted()) {
  $process->stop();
}

$process->start(null, [
    'SystemRoot' => 'C:\\WINDOWS',
    'TEMP' => 'C:\Users\<User>\AppData\Local\Temp',
]);

[...]

替换<User>使用您的用户目录的名称。

关于php - Laravel Dusk - 无法连接到本地主机端口 9515 : Connection refused,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56307027/

相关文章:

php - 查询中的 UNION 语句

laravel - 如何解决laravel中的这个错误: ErrorException (E_WARNING) Invalid argument supplied for foreach()

php - Laravel - [PDOException] : Could not Find Driver in PostgreSQL - MAC OS

php - 如何在 Laravel 项目中安装 PHPunit

ruby-on-rails - 为什么 Rails 不会在运行之间重置测试数据库

javascript - 验收测试侧重于传出的 http 请求

c# - 使用 Moq 调用验证 protected 抽象方法

javascript - SyntaxError : expected expression, 在 Heroku 上得到 '<'

javascript - 通知: Undefined index:

javascript - 为什么我会收到一封空电子邮件?