2

我正在尝试使用当前可用的鼠标操作实现拖放功能(我能够看到有一个未解决的问题),但到目前为止还不能做到这一点。所以我正在寻找解决方法,无论如何我们可以在剧作家python中实现拖放。下面是我尝试使用的代码。

await page.mouse.move(472, 399)
await page.mouse.down()
await page.mouse.move(991, 313)
await page.mouse.up()

谢谢

4

1 回答 1

0

我假设在您的情况下 HTML5 拖放不起作用。

不幸的是,在撰写本文时,当前的剧作家 python (1.10.x) 不会通过,和API触发dragstartdrop事件。mouse.downmouse.movemouse.up

但是,以下代码应该可以工作(使用sync_api),

# This element should have the draggable attribute value as true
src_elem = page.query_selector('div.foo')
# This element should be the element as the drop target
dest_elem = page.query_selector('div.bar')
# Create a data transfer JSHandle instance
data_transfer = page.evaluate_handle('() => new DataTransfer()')
src_elem.dispatch_event('dragstart', { 'dataTransfer': data_transfer })
dest_elem.dispatch_event('drop', { 'dataTransfer': data_transfer })
# Now check whether the dropped effect is achieved
dest_elem.wait_for_selector('ENTER SELECTOR AFTER DROP EFFECT')
于 2021-04-26T09:46:31.223 回答