Laravel黄昏镀铬驱动程序超时

时间:2018-04-15 02:27:18

标签: laravel macos laravel-dusk

任何人都可以提供帮助,我无法让Laravel在我目前的Mac高山脉Laravel 5.6项目中运行默认的样本测试。

错误消息

时间:2.5分钟,内存:14.00MB

有1个错误:

1)测试\ Browser \ ExampleTest :: testBasicExample Facebook \ WebDriver \ Exception \ WebDriverCurlException:使用params将http POST发送到/ session的卷曲错误:{" desiredCapabilities":{" browserName":" chrome",& #34;平台":" ANY"" chromeOptions" {"二进制":" /用户/基思/桌面/黄昏/供应商/ laravel /黄昏/ bin中/ chromedriver-MAC"" ARGS":[" - 禁用-GPU&#34]}}}

操作在30002毫秒后收到0字节时超时

/Users/keith/Desktop/dusk/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php:286 /Users/keith/Desktop/dusk/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:126 /Users/keith/Desktop/dusk/tests/DuskTestCase.php:40 /Users/keith/Desktop/dusk/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:189 /Users/keith/Desktop/dusk/vendor/laravel/framework/src/Illuminate/Support/helpers.php:770 /Users/keith/Desktop/dusk/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:190 /Users/keith/Desktop/dusk/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:92 /Users/keith/Desktop/dusk/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:64 /Users/keith/Desktop/dusk/tests/Browser/ExampleTest.php:21

我已经完成了以下工作:

  • 将以下内容添加到app \ Providers \ AppServiceProvider.php

使用Laravel \ Dusk \ DuskServiceProvider;

...

spawn
  • 跑步' php artisan dusk:安装'在终端
  • 将.env中的App_URL设置为http://localhost:8000
  • 在DuskTestCase
  • 中指定了chromedriver的位置
  • 开始' php artisan serve'在运行' php artisan dusk'
  • 之前

存储库:https://github.com/KKOA/dusk

3 个答案:

答案 0 :(得分:3)

如果您的功能是从DuskTestCase.php扩展的,那么您需要增加connection_timeout_in_ms。

通过将驱动程序方法更改为以下内容来完成此操作:

DuskTestCase.php

protected function driver()
    {
        $options = (new ChromeOptions)->addArguments([
            '--disable-gpu',
            '--headless',
            '--window-size=1920,1080',
        ]);

        return RemoteWebDriver::create(
            'http://localhost:9515', DesiredCapabilities::chrome()->setCapability(
                ChromeOptions::CAPABILITY, $options
            ), 90000, 90000
        );
    }

如果由于某种原因而无法使用,请尝试在set_time_limit之前$this->browse

set_time_limit(0);

答案 1 :(得分:1)

您确实需要安装最新的 google-chrome 和最新的 chrome 驱动程序。我曾经只有 Chrome 浏览器,但它不能使用它。要安装最新的 Chrome 驱动程序,请运行 php artisan dusk:chrome-driver

答案 2 :(得分:0)

在实例化浏览器时尝试执行此操作。.最重要的是$driver = retry(5, function () use ($capabilities) { return RemoteWebDriver::create('http://localhost:9515', $capabilities, 60000, 60000);

下面是我实例化浏览器的方式

$options      = (new ChromeOptions)->addArguments(['--disable-gpu', '--headless', '--no-sandbox']);
$capabilities = DesiredCapabilities::chrome()
  ->setCapability(ChromeOptions::CAPABILITY, $options)
  ->setPlatform('Linux');
$driver       = retry(5, function () use ($capabilities) {
  return RemoteWebDriver::create('http://localhost:9515', $capabilities, 60000, 60000);
}, 50);

$browser = new Browser($this->driver, new ElementResolver($driver, ''));