1

我们在前端使用VueDraggable(和 Vue),并且正在使用 Dusk 测试我们的前端。

我目前正在尝试使用$browser->drag('selector', 'selector')从黄昏将对象从一个列表拖到另一个列表,但我没有看到测试期间发生任何事情(尽管它可能是动作不可见),也没有显示正确的结果,该对象不会出现在指示的列表中。

我想知道是否有人已经做了一个使用 $browser->drag() 结合 Vue.draggable 的工作示例?我在问,因为我不知道我是否在尝试不可能的事情。

4

1 回答 1

0

在 Dusk 的 Github 上有一个未解决的问题。我不得不打开一个可以在此处找到的新问题,因为原始问题已关闭以供评论。该链接包含更详尽的解释,但此处突出显示了简短的答案和解决方案:

问题:Laravel 的 Dusk 不会触发 Vue.draggable 事件。为了模拟拖放 Dusk 执行“鼠标向下”、“鼠标移动到某个位置”和“鼠标向上”序列。理论上这是正确的,但不会触发 Vue 的事件。

解决方案:Dusk 的方法确实会触发鼠标按下和鼠标抬起事件,因此我们可以简单地使用这些事件来触发所需的事件。

$("a[draggable='true']").on("mousedown", function(event)  {
    $(this).trigger("dragstart");
});

$("div[droppable='true']").on("mouseup", function(event) {
    $(this).trigger("drop");
});

这个 JSFiddle是它如何工作的一个示例(当然,您需要在 Laravel 项目中实现它才能真正进行测试!)。

于 2017-12-28T05:10:33.203 回答