Recipes
Problems met with the browser core, sorted by what you are seeing, each with its cause and its fix.
Each page starts from a symptom of the browser core (shot.py, rpa.py),
explains the cause and gives the fix.
Find yours by symptom
| What you are seeing | Go to |
|---|---|
| The click reports success and nothing moved | Element that will not click |
| The form submits and the page does not change | Form that never submits |
| Navigation times out on a page that keeps loading | Page that never settles |
| You are back on the sign-in page between two calls | Session lost between calls |
| The element is visible but no selector reaches it | Element inside an iframe |
| A selector that worked yesterday now hits the wrong row | Clicked the wrong element |
| Sign-in works, then the target asks for a six-digit code | The target asks for a second factor |
| You start something slow and hear nothing until it ends | Long operation, no feedback |
The one to know first
A timeout on a click does not mean the action failed.
A form submission can keep the HTTP request open for the whole operation on the server. Playwright stops waiting after its timeout and reports an error, while the server carries on and finishes the work. Retried with a longer timeout, the operation runs a second time.
Check the target before retrying.