いくつかのドラッグ アンド ドロップ機能をテストしようとしていますが、playwright にはドラッグ アンド ドロップ機能がないように見えるのでmouse.move()
、 , mouse.down()
&を使用していmouse.up()
ます。
しかし、私の試みは失敗しているようで、ターゲットは移動していません。以下のコード:
test("drag and drop test", async () => {
await page.goto("https://www.w3schools.com/html/html5_draganddrop.asp");
await page.waitForSelector("#accept-choices");
await page.click("#accept-choices");
await page.waitForSelector("#div1");
let xStart, yStart, xFinish, yFinish, elementHandle, rect;
elementHandle = await page.$("#div1");
rect = await elementHandle.boundingBox();
xStart = rect.x + rect.width / 2;
yStart = rect.y + rect.height / 2;
elementHandle = await page.$("#div2");
rect = await elementHandle.boundingBox();
xFinish = rect.x + rect.width / 2;
yFinish = rect.y + rect.height / 2;
console.log(`move from (${xStart}, ${yStart}) to (${xFinish},${yFinish})`);
await page.screenshot({ path: "before drag.png" });
await page.mouse.move(xStart, yStart);
await page.mouse.down();
await page.mouse.move(xFinish, yFinish);
await page.mouse.up();
await page.screenshot({ path: "after drag.png" });
});