Laravel Dusk 在 Canvas 元素上绘制

Laravel Dusk Draw on Canvas Element

我正在尝试进行 Laravel Dusk 测试以签署 canvas 元素(jSignature 插件)

但似乎可以正常工作。这是我当前的代码:

    $this->browse(function (Browser $browser) {
        $browser->visit('/form')

            # Sign
            ->click('#input-13')
            ->pause(3000)
            ->mouseover('.jSignature')
            ->click('.jSignature')
            ->moveByOffset(100,100)
    });

有什么想法吗?

设法解决了!我就是这样做的(签名以 bootstrap 模态 window 打开):

            ->click('#input-13')
            ->pause(3000)
            ->mouseover('.jSignature')
            ->click('.jSignature')
            ->dragRight('.jSignature',100)
            ->dragLeft('.jSignature',200)
            ->pause(3000);

暂停是为了让 bootstrap 的过渡结束。

如果有人想像在地图上一样使用点击点在 canvas 上绘图,您可以使用 clickAndHold() 然后 releaseMouse() 来模拟实际点击

$browser->click('#map')
        ->clickAndHold()
        ->releaseMouse()
        ->moveMouse(0, 200)
        ->clickAndHold()
        ->releaseMouse()
        ->moveMouse(200, 0)
        ->clickAndHold()
        ->releaseMouse()
        ->moveMouse(0, -200)
        ->clickAndHold()
        ->releaseMouse()
        ->moveMouse(-200, 0)
        ->screenshot('1');