Laravel 黄昏截图

Atn*_*ize 6 laravel laravel-dusk

我正在使用 laravel5.6Dusk运行一些测试。

我总是像这样截取我的截图

...
use Facebook\WebDriver\WebDriverDimension;
...
class LoginTest extends DuskTestCase
{
    public function testLogin()
    {
        $user = User::first();

        $this->browse(function ($browser) use ( $user ) {
            $test = $browser->visit( new Login)
                    ->resize(1920,1080)                    
                    ...                
                    ->driver->takeScreenshot(base_path('tests/Browser/screenshots/testLogin.png'));
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

但是随着我的测试使用的越来越多,我不想每次都继续写->resize(X,Y)base_path('bla/blab/bla').

我想为将要编写的每个测试定义大小路径

我想我应该定义一些函数,tests/DesukTestCase.php但我什至不知道如何检索驱动程序等等。

你有关于这方面的一些指导或文档吗?因为我找不到任何东西......

mae*_*lga 4

您只需要添加'--window-size=1920,1080'进去即可$options。这会将 1920x1080 屏幕分辨率应用于所有 Dusk 测试。随意调整到您想要的任何窗口大小。

所以你的 DuskTestCase.php 文件应该如下所示:

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

    $driver = RemoteWebDriver::create(
        'http://selenium:4444/wd/hub',
        DesiredCapabilities::chrome()->setCapability(
            ChromeOptions::CAPABILITY,
            $options
        )
    );

}
Run Code Online (Sandbox Code Playgroud)