Frames and Files
Permissions in Playwright
Permissions in Playwright: definition, context permission setup, examples, mistakes, interview notes, and practice.
Definition and Brief Explanation
Definition: Permissions in Playwright grant or reset browser Permissions such as geolocation, camera, microphone, clipboard, and notifications for a browser context.
Explanation: Permissions belong to the browser context, so they can be isolated per test. This lets you test permission-dependent flows without manually clicking browser prompts.
Why It Matters
- It lets tests cover permission-dependent features without manual browser prompts.
- It keeps permissions isolated per browser context.
- It supports features like geolocation, camera, microphone, clipboard, and notifications.
- It helps verify both allowed and denied permission behavior.
How It Works
- Create or configure a browser context.
- Grant the needed permission for the target origin.
- Open the page and trigger the feature.
- Assert the application behavior for granted or missing permission.
Syntax and Examples
Example 1: Grant geolocation
const context = await browser.newContext({ Permissions: ['geolocation'] });
Explanation: Grants geolocation permission to pages inside that browser context.
Common Mistakes
- Granting permission globally and leaking state between tests.
- Forgetting the origin when permission behavior depends on it.
- Testing only the allowed path and not the denied path.
- Assuming all browsers expose every permission exactly the same way.
Interview Notes
- Where are permissions configured in Playwright?
- How do you grant geolocation permission?
- How do you test denied permission behavior?
- Why should permissions be isolated per test?
Practice Task
Create one test with geolocation permission granted and one without it. Assert the different UI behavior in both cases.