如何使用 duncan3dc/dusk 库截屏?

How can I take a screenshot using duncan3dc/dusk library?

我正在使用laravel中的duncan3dc模块,从默认示例成功导入文本但我不知道如何截图,

我刚刚使用 Composer 安装了这个模块。

$ composer requires duncan3dc/dusk.

这是否意味着该模块所需的一切都已自动安装?

或者我需要其他东西来截屏吗?

下面是我的控制器代码

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use duncan3dc\Laravel\Dusk;

class TestController extends Controller
{

    public function test()
    {
        $dusk = new Dusk;
        $dusk->visit("http://example.com");
        $dusk->screenshot("ddd");
        echo $dusk->element("h1")->getText() . "\n";
    }
}

当我运行上面的代码时,我得到这个错误:

file_put_contents (/tmp/ddd.png): failed to open stream: No such file or directory

我觉得没有文件夹,所以报错,我应该在项目文件夹的什么位置创建文件夹?

根据版本 0.8.0 中的 changelog,您可以将完全限定路径传递给 screenshot 方法。所以这样做会起作用(您应该看到在 php 文件附近创建的文件 ddd.png):

$dusk = new Dusk;
$dusk->visit("http://example.com");
$dusk->screenshot("./ddd.png");
echo $dusk->element("h1")->getText() . "\n";

也可以传绝对路径:

$dusk->screenshot("C:\windows\temp\ddd.png"); // if you are using windows

$dusk->screenshot("/tmp/ddd.png"); // if you are using macos/linux