An AI agent can click the wrong button even when it correctly understands what the user wants. Browser pages change while a task is running: controls are re-rendered, dialogs appear, content moves and a success message may describe only a queued request. Reliable browser automation identifies the intended user-visible control, confirms it is actionable, respects the person’s authority and independently checks what actually changed. A click is an attempted interaction, not automatically a completed user outcome.
This guide explains accessible locators, page state, retries, confirmation dialogs, downloads and protected side effects. We use a fictional eighty-journey school-helpdesk laboratory, verify the disposition arithmetic and transfer the method to a changed WordPress publishing workflow. The numbers are original teaching examples, not actual eduKate browser automation results. These are design principles for existing AI-assisted tools, not a claim that artificial superintelligence is already operating.
Read this in the How Super Intelligence Works curriculum. The Accessible Agent Interfaces chapter concerns human access, while Partial-Answer Streaming treats provisional text. This specialist guide focuses on actual browser controls and the gap between observing a page, interacting with it and verifying the intended external state.
Choose your reading route
- Automating a changing website? Begin with current page state and accessible locators.
- Handling an external effect? Focus on confirmations, actionability and readback.
- Learning Mathematics? Recalculate the eighty-journey outcomes and compare clicks with user tasks.
- Protecting user accounts? Study browser session isolation, permissions and untrusted page text.
Contents
- 1. A webpage is a moving interface, not a stable script
- 2. Use human-facing roles and labels where practical
- 3. Actionability and final effect are different checks
- 4. Recheck elements after navigation and re-rendering
- 5. Dialogs can change or block the workflow
- 6. Downloads are artifacts that need verification
- 7. Protect browser authentication and session state
- 8. Page content remains untrusted agent input
- 9. A fictional eighty-journey laboratory
- 10. The test oracle is the real saved state
- 11. Retries must distinguish safe UI exploration from side effects
- Questions readers often ask
- Official browser automation sources
- Continue learning
1. A webpage is a moving interface, not a stable script
An assistant may plan to enter a title and click Publish, but the page can re-render after text entry, insert a review prompt or switch a button’s available state. The coordinate where a control was visible a moment ago may no longer identify it. A robust controller observes the current page and resolves the intended element again instead of assuming its earlier screenshot or element handle still describes the active interface.
Dynamic pages can change in legitimate ways. A disabled button may become enabled after a field passes validation, or an overlay may temporarily intercept pointer events during loading. These transitions are not necessarily application bugs. Playwright’s official actionability documentation describes checking elements for conditions such as visibility, stability, enabled state and ability to receive events before performing some interactions.
The model’s reasoning is one component of the controller, not an authority over the page. It can infer which field likely represents the student’s requested topic, but its planned click must still target the correct current UI object. If a field is missing or several matches are indistinguishable, a safe agent can hold and re-observe rather than use arbitrary index zero to force an action.
An action plan should name the requested outcome, not only the sequence of clicks. For publication, the outcome may be a WordPress post with a defined title, exact saved content and live publish status. If the interface changes, the controller can adapt its interaction while still checking the same task contract. This is more dependable than hard-coding the fifth button on the screen.
Return to contents or continue to Use human-facing roles and labels where practical.
2. Use human-facing roles and labels where practical
Playwright recommends locators based on accessible roles, labels and user-visible text, such as `getByRole` or `getByLabel`. These mirror how people understand a control and are often more resilient than fragile implementation details. An agent seeking the Save Draft button can search for that named role within the correct form or dialog, rather than depend on a random CSS class created by a build.
Accessible names are not infallible identifiers. Two controls may both say Save, one for the main article and one for a profile setting. Scope the locator to the intended form, section or dialog and check that it resolves unambiguously. The actual user task also matters: clicking a Save Draft control is not equivalent to clicking Publish merely because both contain the word save.
Labels can change with localization or product updates. An accessible role plus known region or test identifier may be appropriate under the application’s actual contract. Avoid selecting an element by a broad text substring when the consequence of an incorrect click is material. For sensitive actions, a verified target ID and content revision provide stronger evidence than surface text alone.
Good locators improve both automation and interface accessibility. A button with a meaningful accessible name helps keyboard and screen-reader users and gives automated tests a stable contract. Yet automation passing does not prove the page is fully accessible: focus order, announcements, contrast and human comprehension need separate evaluation. Use complementary tools rather than collapse them into one check.
Return to contents or continue to Actionability and final effect are different checks.
3. Actionability and final effect are different checks
A click may only be attempted when its target is appropriate under the present page state. Playwright’s auto-waiting checks reduce errors from elements that have not yet become visible, stable or enabled. These checks answer whether a browser interaction can proceed in the tested UI, not whether the external application subsequently saved the intended data.
After clicking Save, a page may display ‘Processing…’ while the server still has a queued job. A toast may say ‘request accepted’ but not prove an article is public. A reliable agent waits for an authoritative final state when the user requested completion, perhaps by opening the saved item or reading a suitable API record with the correct identity and permissions.
Do not treat a click timeout as proof nothing happened. The browser may have submitted a request before the timeout, or the server may have committed while the response was lost. Repeating the click can duplicate an email or create another post. A stable logical operation identity and target-state reconciliation are necessary before a consequential retry.
Show honest statuses to the user: drafted, submitted, accepted for processing, verified public or unresolved. The language model can make the explanation clear, but the underlying evidence must come from the protected application or provider. A friendly ‘done’ does not transform a pending browser operation into the requested effect.
Return to contents or continue to Recheck elements after navigation and re-rendering.
4. Recheck elements after navigation and re-rendering
A previously identified DOM node can become detached when an application updates a list or navigates to a different page. An element handle captured earlier may then be stale. Locator-based approaches re-resolve the element against current page state; this is a useful property for dynamic interfaces, subject to each framework’s actual semantics. A model that plans from an old screenshot still needs fresh observation before a consequential interaction.
Distinguish page identity from visual similarity. Two project dashboards may use identical forms and buttons but belong to different accounts. The controller should check current URL, authenticated account, workspace and target object ID before filling or submitting protected information. A screenshot showing the correct label does not establish that the browser is in the correct tenant.
A form can reset after validation. A title may remain while the body field loses content; a site editor may automatically transform pasted markup. Before publishing, verify the intended values are present in the active fields, then independently fetch the saved artifact afterward. The same approach applies to a parent message, with recipient and content checked again before sending.
Do not rely on fixed sleeps as a general solution. Waiting two seconds may be unnecessarily slow when a UI becomes ready immediately or insufficient under load. Prefer defined readiness conditions, bounded waiting and clear error states. A timeout should produce a diagnosable result, not a command to click randomly until the page changes.
Return to contents or continue to Dialogs can change or block the workflow.
5. Dialogs can change or block the workflow
Web applications can show alert, confirmation, prompt and beforeunload dialogs. Playwright’s documentation explains that dialogs can block page execution until handled, and that registered handlers must actually accept or dismiss them. A browser automation that merely logs the dialog may stall. The agent should know which user-approved decision the dialog represents before choosing either action.
Not every dialog should be accepted automatically. A confirmation saying ‘Delete this file permanently?’ is different from one saying ‘Discard unsaved formatting changes?’. The correct response depends on the current user instruction and consequence, not on the fact that the interface expects a button. A model must not infer missing consent from a modal appearing during its workflow.
Dialog text can contain untrusted content. A page might display misleading confirmation wording or show a new recipient that differs from the original task. The controller should inspect the actual target and protected task state, and hold if a material condition changed. An accessibility review can ensure a human can understand the dialog; the backend still needs appropriate permission enforcement.
Preserve a record of which choice was made under which task ID. Clicking Confirm without later verifying the target state is an interaction record, not a final success receipt. A delayed provider response may leave the operation unknown. Treat that uncertainty distinctly from a user’s deliberate refusal to continue.
Return to contents or continue to Downloads are artifacts that need verification.
6. Downloads are artifacts that need verification
Some browser tasks end in a downloadable file rather than a page update. Playwright’s documentation describes a download event and a temporary browser-context download location; files in that location may be removed when the context closes. The controller needs to capture the intended download and save it through an approved path before declaring the artifact available to the user.
A file being downloaded does not prove its contents are right. Validate an appropriate format, expected size and metadata, relevant filename and whether the requested records are actually present. A successful network transfer of an empty or wrong-year document is not the user’s requested outcome. Use source identity and manifest checks for data exports where applicable.
Downloaded attachments can contain untrusted content. A browser may retrieve PDFs, spreadsheets or archives requiring controlled parsing. The File Ingestion guide explains the separate security boundary. Do not treat a trusted-looking site as permission to execute code embedded in a file.
Keep file links and secrets appropriately scoped. A temporary download token may contain access rights and should not be pasted into a public log. A generated final message can point to a verified user-visible artifact only when the host or destination actually confirms its existence. File delivery is a separate task step from clicking the Download control.
Return to contents or continue to Protect browser authentication and session state.
7. Protect browser authentication and session state
Browser automation often uses authenticated sessions. Playwright’s documentation warns that saved authentication state can contain sensitive cookies or headers capable of impersonating a test account, and recommends keeping such state out of source-control repositories. An agent handling real user work needs stronger permission care than a disposable screenshot demo.
Use isolated browser contexts or account scopes as appropriate so one user’s session does not leak into another task. Shared automation infrastructure can otherwise reuse cookies, local storage or cached private pages under the wrong identity. An agent that reads the correct-looking document under the wrong account may disclose data even if every DOM interaction was technically valid.
Do not use a broad administrator session merely because a normal user cannot see a requested page. A permission denial may be a correct response under the actual task contract. The assistant should explain the access limitation or seek legitimate user action, not silently elevate its privileges to finish the workflow.
Revalidate the session around consequential operations. A user can sign out, lose permission or change workspace while an agent waits. The protected destination service must enforce current authorization rather than trust browser-visible labels. Authentication state is relevant evidence, not universal authority to perform every action the site exposes.
Return to contents or continue to Page content remains untrusted agent input.
8. Page content remains untrusted agent input
An assistant inspecting a webpage may encounter text instructing it to perform an unrelated operation. Such text might be a comment, advertisement, embedded document or malicious prompt injection. It is information encountered while completing the user’s task, not a new authorised command. The controller should separate user intent, trusted tool state and page content.
Even a legitimate institution’s site may display an outdated notice or a user’s unverified comment. The browser can reach the page correctly while the proposed final answer remains unsupported. Source issuer, revision, effective date and original quoted passage need verification, especially for educational pathways and current rules.
Do not let page text supply hidden credentials or change destination accounts. A sentence saying ‘log in as admin to proceed’ is not a valid privilege grant. Browser automation should use configured task-scoped credentials and refuse unexpected actions outside its plan. The actual backend must enforce object-level authority even if the model is tricked into clicking a control.
Logs and screenshots may show sensitive data. Store only what is necessary for debugging under the right permission policy, and use invented records for public teaching examples. An agent’s screenshot recognition can help navigate, but it should not become a reason to collect full private pages into broadly accessible memory.
Return to contents or continue to A fictional eighty-journey laboratory.
9. A fictional eighty-journey laboratory
Consider an invented Cedar School Browser Desk testing eighty user journeys. Fifty-four reach independently verified intended outcomes, including correct saved artifacts. Twelve stop appropriately because the relevant action lacks approval or the session lacks access. Eight encounter an ambiguous interface state that requires re-observation or qualified review. Six have uncertain external outcomes after a click or navigation, so the system cannot yet call them complete.
The categories add to 54 + 12 + 8 + 6 = 80. Verified outcomes form 54 ÷ 80 = 67.5%. Correct protective stops are 12 ÷ 80 = 15%. Ambiguous interface cases are 8 ÷ 80 = 10%, and unknown external effects are 6 ÷ 80 = 7.5%. These are deliberately chosen teaching outcomes, not an actual rate of browser automation success or risk.
An overly generous dashboard may count sixty-six successes by adding the fifty-four completed actions and twelve correct denials. That hides the difference between fulfilling a requested artifact and enforcing a safety gate. Another dashboard may classify the six uncertain results as confirmed failures and retry every click, risking duplicate submissions. Preserve the disposition categories and their different next actions.
A user task may involve several clicks and page transitions. The example counts eighty logical journeys, not the number of individual interactions. Counting hundreds of clicks as user completions would inflate progress without changing how many parents received a correct saved document. Keep browser operation telemetry separate from the accepted task result.
Return to contents or continue to The test oracle is the real saved state.
10. The test oracle is the real saved state
For a draft-creation journey, check the canonical saved item ID, draft status and intended content. For publication, check that the target is actually live with the expected title, revision and metadata. For account changes, inspect the protected current settings. A screenshot of a toast saying ‘Success’ is weaker evidence than the destination’s authoritative record.
Interface automation and API readback can complement each other. The browser drives the same controls that a person sees, while a permitted API or trustworthy saved-page fetch independently checks the effect. A controller should not claim that it tested a page’s visual layout when it only inspected an API response, or vice versa. State exactly which observations support the result.
An assistant may click the right button while the backend rejects the write because approval expired or content validation failed. The browser might remain on the same page with an error banner. The correct next step is to inspect the error and preserve the draft, not claim publication because the click target was correct.
Some destinations provide asynchronous jobs whose final result appears later. The controller can truthfully report Submitted or Pending before the final receipt arrives. If evidence never becomes available, the task should remain unresolved with a safe handoff. A model’s preference for concluding the conversation does not change the state of the underlying service.
Return to contents or continue to Retries must distinguish safe UI exploration from side effects.
11. Retries must distinguish safe UI exploration from side effects
An automation may safely re-observe a page, re-locate a label or retry a harmless read when its target is temporarily unavailable. That differs from re-clicking Send, Delete or Pay after the previous operation may have reached a server. Repeatability depends on the action’s idempotency and the provider’s actual completion semantics.
Use a stable operation identity where supported, and reconcile the target before another consequential attempt. A click timeout after sending a message does not prove the recipient received nothing. Another send might duplicate it. The same applies to creating a new WordPress post: find the original unsuffixed slug or post ID rather than generate an unnecessary second owner.
Bound retries and time. An overlay that never clears or a disabled button whose condition cannot be met should produce a diagnosable hold, not an endless loop. A human can help resolve a genuinely ambiguous consent or account state when appropriate. Automation should not bypass an enabled-state or permission guard merely because its initial plan expected progress.
Keep retries tied to the original user task and current authorization. A parent might cancel the action while the browser waits. The controller must stop new effects under the expired intention, even if a previous locator becomes actionable moments later. UI readiness is not user consent.
Return to contents.
12. The eighty-journey ledger needs a truthful denominator
In the fictional Cedar Browser Desk, fifty-four journeys have an independently verified intended result, twelve stop correctly because of absent approval, eight encounter unresolved interface ambiguity and six have unknown external outcomes. The original logical-task population is eighty. The shares are respectively 67.5%, 15%, 10% and 7.5%, summing to 100%. These figures are invented to make the reasoning inspectable.
A correct refusal is not the same thing as a published resource. If a parent lacks permission to edit a school record, stopping the action may satisfy the security requirement even while the requested edit remains undone. An ambiguous interface needs fresh observation, while an unknown external result needs provider reconciliation. One label of failure would hide these different next actions.
Count journeys rather than clicks. One approved publication might require twenty interactions; another may need only five. If the dashboard counts every click as progress, a repetitive loop can look more productive than one verified completion. The true denominator is the number of user intentions under a specified acceptance contract, with substeps stored for diagnosis rather than inflated service statistics.
Return to contents to choose a different topic.
13. A decision table makes UI states auditable
A practical report can describe the intended action, observed control, result of actionability checks, submitted operation identity and verified target state. A button may have been visible but disabled, or enabled yet blocked by a dialog. A submission can have been accepted but not completed. The table helps engineers distinguish interface readiness from business completion before deciding what to retry.
Keep the state tied to the target account or resource. Two pages may show identical button labels and document titles while pointing to different workspaces. The correct row should include a stable object ID, authorised account and expected revision. A screenshot alone may not make those identities obvious, so a trusted backend or DOM attribute may be needed within the actual application contract.
Do not put passwords, session cookies or other private user data into an unrestricted debugging table. Use pseudonymous task and operation IDs and appropriately protected evidence pointers. A qualified investigator can access the required source through a controlled channel. The goal is to make the error reproducible without creating another sensitive copy of the entire browsing session.
Return to contents to choose a different topic.
14. Dialogs deserve user-specific decisions
Consider a fictional screen asking ‘Publish this article and notify subscribers?’ The user requested only public publication without a notification. A model that automatically clicks Confirm may create an unapproved additional effect. The controller needs to inspect the dialog’s actual consequence and ensure the protected publishing settings match the person’s current instruction. The presence of a confirmation button is not evidence of consent.
Playwright’s dialog documentation notes that registered handlers must actually handle blocking dialogs. In a scripted test, a listener that only prints the message can leave the click stalled. A robust workflow prepares the intended decision and handles the correct dialog path. But accepting every confirmation by default would be an operational mistake even if it prevents a test from hanging.
Change one condition: after the user reviews a draft, the model edits its recipient or material content. The earlier approval may no longer apply. The browser can still find the Confirm button, but the destination service should refuse an action that does not match the approved payload. This separates UI mechanics from current human permission.
Return to contents to choose a different topic.
15. A two-stage submission needs two observations
An agent can correctly locate Publish, click once and receive a message that the request was accepted. A background job might still be processing. First establish whether the browser submitted the intended request; second establish the final provider state for the specific post. A green toast cannot replace the second step unless the provider contract actually defines it as authoritative completion evidence.
If the browser times out, use the original task ID and target slug or other stable resource identity to inspect actual state. A new create operation may produce a duplicate with a suffixed URL. If the original exists as an incomplete draft, repair that owner rather than create a replacement. If it already matches the intended published body and status, the correct next step is to report completion and avoid a duplicate action.
The same logic applies to downloading files, sending messages or changing calendar events. A navigation completes, a download event fires or a request returns Accepted, but the actual user outcome may still be missing. The tool should expose reliable final states where possible and an explicit unresolved state where it cannot. An agent that cannot prove completion should not claim it.
Return to contents to choose a different topic.
16. Changed-context transfer: a school worksheet publisher
Imagine a fictional agent preparing forty school worksheets through a browser. Twenty-eight are saved and verified as intended, six are correctly held for missing editor approval, four show material form discrepancies after re-rendering and two have unknown external publication status. The counts sum to forty. Verified completion is 28 ÷ 40 = 70%; correct holds are 15%, form mismatches 10% and unknown effects 5%.
Now the website moves the publication button into a review dialog and displays the draft’s actual target audience. A locator relying on the button’s old screen position can click the wrong region, while a role-and-dialog-scoped locator may still find the relevant control. The controller must re-observe the current form and check the new consequence rather than force the old sequence through.
Change the user’s instruction: the editor authorises the worksheet to be published but explicitly forbids subscriber email. The protected publication settings must reflect that exclusion regardless of the UI change. One of the unknown saves may also have completed before a timeout, so the agent should inspect the canonical post before retrying. The case tests page adaptation, current authority and real saved outcome separately.
Return to contents to choose a different topic.
17. Use screenshots for context, not irreversible authority
A screenshot can help a vision-capable agent interpret layout, locate a dialog and understand what the user sees. But a static image may be stale immediately after an asynchronous update, and it can hide exact object IDs or text that is not visible. A screenshot is one observation, not a continuing guarantee that the target still exists at the same coordinates.
Coordinate-based actions may be necessary in some computer-use settings, but use them with fresh observations and tight consequence checks. A button can move because of responsive layout, accessibility settings or a new banner. Before an irreversible action, confirm the exact target and recheck the resource identity and permission. The safest route may be a stable accessible locator when the environment provides one.
Screenshots can contain sensitive data and should not be sent casually to unrelated services or stored without a retention purpose. A school support record might display names, marks and private correspondence. A tool should minimise captured information and protect debugging artifacts appropriately. Technical convenience does not create authority to share a user’s entire screen.
Return to contents to choose a different topic.
18. Browser automation must respect dynamic identity
A person can switch accounts or workspaces in a browser while the agent is in the middle of a task. The same navigation sidebar and controls may remain visible, but the data belong to a different account. A controller should validate current authenticated identity, workspace and target object before submitting consequential changes. UI similarity is not an access grant.
An application update can also change form defaults. A previously optional field may become required, a checkbox may default to sending notifications, or a save mode may switch from draft to public. Inspect the actual intended effect and set critical options explicitly under the approved task contract. The Tool Contract Drift guide covers the companion API-level versioning problem.
Do not bypass a disabled button to get a faster result. A disabled control can reflect missing validation, invalid permission or an incomplete form. Playwright provides a force option for some actions, but suppressing actionability checks is not a substitute for understanding why a protected workflow refuses execution. A human or qualified reviewer may need to resolve the condition.
Return to contents to choose a different topic.
19. Build an isolated regression lab for changing websites
A good browser test suite uses synthetic school users, draft files and a protected environment. Include a form that rerenders after validation, two buttons with the same label in different panels, a modal confirmation, a delayed server response and a lost network acknowledgement after the server committed. The expected result is defined independently of the agent’s narrative.
Test real user-visible behaviour where possible, as Playwright’s best-practices documentation recommends, while keeping the tests independent and appropriately isolated. Stable test IDs can supplement accessible labels when the app has no reliable other locator. But tests should not pass solely because a CSS class exists while the user-facing action is broken.
After a fix, replay the original failing journey and check the actual saved target. Then test the legitimate positive path and the forbidden action. If the interface changes again, update locators and expected consequences through a versioned review rather than silently relax assertions. A generated model report that ‘all actions succeeded’ is weaker than the test harness’s actual target-state evidence.
Return to contents to choose a different topic.
20. Operational monitoring for visible and invisible failures
Monitor element-not-found, ambiguous matching, actionability timeouts, dialog stalls, navigation changes, wrong-account targets and target readback mismatches as different operational events. Each needs a different repair. A missing locator may mean the UI changed, while a permission refusal may mean the protective system worked. A high click count can be a sign of a loop rather than successful automation.
Give human operators enough context to respond safely: stable task ID, intended action, source account, last trusted page state and known external effects. A qualified reviewer can handle ambiguous UI, source or consent cases when appropriate. Do not send the user’s full browser cookie store or private page contents to a broad support channel. The incident record should protect the same data as the live session.
A service-level objective can track verified user journeys rather than only the number of successful DOM clicks. A browser agent may perform every planned interaction yet leave several WordPress posts as drafts, so an action-count dashboard overstates value. Monitor the user task against its accepted end state, and preserve unknown operations for later reconciliation instead of counting them as instant successes.
Return to contents to choose a different topic.
21. What readers should carry into real workflows
For parents and students, the central question is whether a requested action actually happened—not whether an AI assistant described a convincing sequence of button clicks. A timetable downloaded to the correct account, a worksheet saved as a draft and a public article published live are different outcomes with different evidence. An assistant should be clear about which one is confirmed.
For developers, begin with a single browser journey using semantic locators, fresh readiness checks and exact current account identity. Add a legitimate approval gate before consequential actions, and independently inspect the saved result. Test a timeout after possible completion and verify that recovery does not duplicate an external effect. Make the process recoverable rather than just fast.
More sophisticated visual reasoning does not remove ordinary interface engineering. Buttons can move, dialogs can block, permissions can expire and remote services can lie behind asynchronous status. A reliable agent treats page observations as evidence to act carefully, not as permission to improvise. It reaches the user’s authorised outcome or explains precisely what remains unknown.
Return to contents to choose a different topic.
- 12. The eighty-journey ledger needs a truthful denominator
- 13. A decision table makes UI states auditable
- 14. Dialogs deserve user-specific decisions
- 15. A two-stage submission needs two observations
- 16. Changed-context transfer: a school worksheet publisher
- 17. Use screenshots for context, not irreversible authority
- 18. Browser automation must respect dynamic identity
- 19. Build an isolated regression lab for changing websites
- 20. Operational monitoring for visible and invisible failures
- 21. What readers should carry into real workflows
Questions readers often ask
Why might a browser agent click the wrong control?
Pages move, duplicate labels exist, controls rerender and stale screenshots or selectors can point to an outdated target.
What are accessible locators?
Selectors based on user-facing roles, labels or other stable accessible attributes, as recommended by Playwright where appropriate.
Does a successful click prove publication?
No. The saved target’s status and contents need a trustworthy independent check.
Can a click be safely repeated after a timeout?
Not always. The original operation might have succeeded; reconcile consequential effects before retrying.
How should an agent handle a confirmation dialog?
Check the exact action, recipient and current permission; do not automatically accept every modal.
Should a browser agent use a shared administrator session?
Not to bypass user authorization. Sessions and access must be scoped and separated appropriately.
Official browser automation sources
Sources reviewed 24 October 2026. Cedar School Browser Desk and all eighty journeys are fictional; examples describe engineering principles, not real eduKate automation or a test run performed for this article.
- Playwright Locators: Role and label locators that resolve current elements.
- Playwright Auto-waiting: Visibility, stability, enabled state and pointer event checks.
- Playwright Best Practices: Test user-visible behaviour and isolated browser contexts.
- Playwright Dialogs: Dialog handling, blocking behaviour and safe action choices.
- Playwright Downloads: File-download event and artifact lifecycle.
- Playwright Authentication: Saved authentication state and the risks of leaked session credentials.
Continue learning
Related reading: Super Intelligence curriculum; How X Works hub; Accessible Interfaces; Provisional and Final Results; Agent Cancellation; File Ingestion; Gold Standard of Education. A safe browser action needs current target identity, permitted intent and independent evidence of the actual result.