Как сделать снимок экрана с помощью библиотеки duncan3dc/dusk?

Я использую duncan3dc модуль в laravel, успешно импортирующий текст из примера по умолчанию Но я не знаю, как сделать снимок экрана,

Я только что установил этот модуль с помощью 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.8.0 Вы можете пройти полный путь к screenshot метод. Таким образом, это будет работать (вы должны увидеть файл ddd.png создано рядом с файлом php):

$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
Другие вопросы по тегам