@@ -1029,40 +1029,24 @@ public function dragTo(string $sourceXpath, string $destinationXpath)
10291029 $ target = $ this ->findElement ($ destinationXpath );
10301030
10311031 $ this ->getWebDriverSession ()->moveto (['element ' => $ source ->getID ()]);
1032+ $ this ->getWebDriverSession ()->buttondown ();
10321033
10331034 $ this ->executeJsOnElement ($ source , <<<'JS'
10341035 (function (sourceElement) {
1035- var withPointerEvents = 'PointerEvent' in window;
10361036 window['__minkDragAndDropSourceElement'] = sourceElement;
10371037
1038- withPointerEvents && sourceElement.dispatchEvent(new PointerEvent('pointerdown', {bubbles: true, cancelable: true}));
1039- sourceElement.dispatchEvent(new MouseEvent('mousedown', {bubbles: true, cancelable: true}));
10401038 sourceElement.dispatchEvent(new DragEvent('dragstart', {bubbles: true, cancelable: true}));
1041- withPointerEvents && sourceElement.dispatchEvent(new PointerEvent('pointercancel', {bubbles: true, cancelable: true}));
1042- withPointerEvents && sourceElement.dispatchEvent(new PointerEvent('pointerout', {bubbles: true, cancelable: true}));
1043- withPointerEvents && sourceElement.dispatchEvent(new PointerEvent('pointerleave', {bubbles: true, cancelable: true}));
10441039 }({{ELEMENT}}));
10451040JS
10461041 );
10471042
10481043 $ this ->getWebDriverSession ()->moveto (['element ' => $ target ->getID ()]);
1044+ $ this ->getWebDriverSession ()->buttonup ();
10491045
10501046 $ this ->executeJsOnElement ($ target , <<<'JS'
10511047 (function (targetElement) {
1052- var withPointerEvents = 'PointerEvent' in window;
10531048 var sourceElement = window['__minkDragAndDropSourceElement'];
10541049
1055- withPointerEvents && targetElement.dispatchEvent(new PointerEvent('pointerover', {bubbles: true, cancelable: true}));
1056- withPointerEvents && targetElement.dispatchEvent(new PointerEvent('pointerenter', {bubbles: true, cancelable: true}));
1057- sourceElement.dispatchEvent(new MouseEvent('mouseout', {bubbles: true, cancelable: true}));
1058- sourceElement.dispatchEvent(new MouseEvent('mouseleave', {bubbles: true, cancelable: true}));
1059- targetElement.dispatchEvent(new MouseEvent('mouseover', {bubbles: true, cancelable: true}));
1060- targetElement.dispatchEvent(new MouseEvent('mouseenter', {bubbles: true, cancelable: true}));
1061- targetElement.dispatchEvent(new MouseEvent('mousemove', {bubbles: true, cancelable: true}));
1062- withPointerEvents && targetElement.dispatchEvent(new PointerEvent('pointerout', {bubbles: true, cancelable: true}));
1063- withPointerEvents && targetElement.dispatchEvent(new PointerEvent('pointerleave', {bubbles: true, cancelable: true}));
1064- targetElement.dispatchEvent(new MouseEvent('mouseout', {bubbles: true, cancelable: true}));
1065- targetElement.dispatchEvent(new MouseEvent('mouseleave', {bubbles: true, cancelable: true}));
10661050 sourceElement.dispatchEvent(new DragEvent('drag', {bubbles: true, cancelable: true}));
10671051 targetElement.dispatchEvent(new DragEvent('dragover', {bubbles: true, cancelable: true}));
10681052 targetElement.dispatchEvent(new DragEvent('drop', {bubbles: true, cancelable: true}));
0 commit comments