Laravel Dusk如何在执行测试时显示浏览器

时间:2018-04-20 09:41:13

标签: laravel testing laravel-5 laravel-dusk

我正在编写一些测试,我想看看Dusk是否正确填写了输入字段,但Dusk在运行测试时没有显示浏览器,有没有办法强迫它这样做?

3 个答案:

答案 0 :(得分:8)

DuskTestCase::driver()中禁用无头模式:

$options = (new ChromeOptions)->addArguments([
    //'--disable-gpu',
    //'--headless'
]);

答案 1 :(得分:0)

在您的tests/DuskTestCase.php文件顶部附近,添加:

use Facebook\WebDriver\Chrome\ChromeOptions;

在同一文件中,将整个driver()函数替换为:

/**
 * Create the RemoteWebDriver instance.
 *
 * @return \Facebook\WebDriver\Remote\RemoteWebDriver
 */
protected function driver() {
    $options = (new ChromeOptions)->addArguments([
            //'--disable-gpu',
            //'--headless'//https://stackoverflow.com/q/49938673/470749
    ]);

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

答案 2 :(得分:0)

更新(2021 年):

您可以使用 2 种方法禁用 Headless:

方法 1:将此添加到您的 .env

DUSK_HEADLESS_DISABLED=true

方法 2:如果您不需要为所有测试显示浏览器,请将其添加到您的特殊测试用例中

protected function hasHeadlessDisabled(): bool
{
    return true;
}

顺便说一句,我不知道为什么文档中没有提到这些。我自己从 DuskTestCase.php 中找到了上述方法。

enter image description here