如何使用duncan3dc / dusk库拍摄屏幕截图?

时间:2018-07-31 03:40:15

标签: php laravel laravel-dusk laravel-dusk2

我正在使用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):打开流失败:没有这样的文件   或目录

我认为没有文件夹,因此出现错误,我应该在项目文件夹中的哪个位置创建文件夹?

1 个答案:

答案 0 :(得分:1)

根据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