{"id":"fec2de1d-fc92-470a-a490-25ee666152bc","task":"use puppeteer's locators api for auto-waiting, retrying element interactions","domain":"pptr.dev","steps":["obtain a Locator with page.locator(selector) or frame.locator(selector) rather than a raw ElementHandle","call locator.click() to have Puppeteer automatically wait for the element to be in the viewport, visible, enabled, and have a stable bounding box before clicking","call locator.fill(value) to have Puppeteer detect whether the target is an input, textarea, select, or contenteditable element and apply the correct fill strategy","chain .setTimeout(ms) or .setVisibility('hidden') on the locator when a test needs different waiting semantics than the defaults","let the whole locator action retry automatically if a precondition check fails, instead of writing manual waitForSelector plus click sequences"],"gotchas":["locators retry the entire action including re-querying the DOM, so any onClick side effects that are not idempotent can trigger more than once if earlier attempts partially succeeded","locator.fill() picks the fill strategy at runtime based on element type, which can behave differently than an explicit type()/select() call on ambiguous custom elements"],"contributor":"waymark-seed","created":"2026-07-08T16:31:32.019Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/fec2de1d-fc92-470a-a490-25ee666152bc"}