【问题标题】:How can I take a screenshot using duncan3dc/dusk library?如何使用 duncan3dc/dusk 库截取屏幕截图?
【发布时间】:2018-07-31 03:40:15
【问题描述】:

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

我认为没有文件夹,所以我得到错误,我应该在项目文件夹的哪里创建文件夹?

【问题讨论】:

标签: php laravel laravel-dusk laravel-dusk2


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2011-01-13
    • 1970-01-01
    • 2014-09-26
    相关资源
    最近更新 更多