diff --git a/tools/playwright/browser_helper.mjs b/tools/playwright/browser_helper.mjs index 0e2a79c..b7913a3 100755 --- a/tools/playwright/browser_helper.mjs +++ b/tools/playwright/browser_helper.mjs @@ -284,6 +284,18 @@ async function handle(req) { } case "click": { + if ( + !req.selector && + !req.role && + !req.text && + !req.label && + !req.placeholder + ) { + return fail( + id, + "click requires selector, role(+name), text, label, or placeholder" + ); + } const p = await ensurePage(); const loc = await resolveLocator(p, req); await loc.click({ timeout: req.timeout_ms ?? 10000 }); @@ -292,9 +304,9 @@ async function handle(req) { } case "type": { - const p = await ensurePage(); const text = req.text ?? req.value; if (text == null) return fail(id, "type: missing text"); + const p = await ensurePage(); const loc = await resolveLocator(p, req); if (req.clear !== false) { await loc.fill(String(text), { timeout: req.timeout_ms ?? 10000 }); @@ -377,6 +389,7 @@ async function runSelfTest() { r = await handle({ id: "t4", op: "nope" }); cases.push(["unknown_op", r.ok === false]); + await handle({ id: "t4b", op: "close" }); r = await handle({ id: "t5", op: "status" }); cases.push(["status", r.ok === true && r.browser_open === false]);