- vừa được xem lúc

[Playwright Interview question #27]: Cách xử lý browser permissions trong Playwright?

0 0 4

Người đăng: Playwright Việt Nam

Theo Viblo Asia

Câu hỏi phỏng vấn #27: How do you handle browser permissions in Playwright?

Trả lời mẫu:

1. Grant Permissions:

// Grant specific permissions
const context = await browser.newContext({ permissions: ['geolocation', 'camera', 'microphone']
}); // Grant for specific origin
await context.grantPermissions(['notifications'], { origin: 'https://example.com'
});

2. Geolocation Permission:

const context = await browser.newContext({ permissions: ['geolocation'], geolocation: { latitude: 59.95, longitude: 30.31667 }
}); // Update location
await context.setGeolocation({ latitude: 40.7128, longitude: -74.0060 });

3. Camera/Microphone:

const context = await browser.newContext({ permissions: ['camera', 'microphone']
}); // Test video call features
await page.goto('/video-call');
await page.click('#start-call');

4. Notifications:

// Grant notification permission
await context.grantPermissions(['notifications']); // Listen for notifications
page.on('dialog', async dialog => { console.log('Notification:', dialog.message()); await dialog.accept();
});

5. Clipboard Access:

const context = await browser.newContext({ permissions: ['clipboard-read', 'clipboard-write']
}); // Test clipboard
await page.evaluate(() => { navigator.clipboard.writeText('Hello Playwright');
});

6. Clear/Deny Permissions:

// Clear all permissions
await context.clearPermissions(); // Deny by not granting
const context = await browser.newContext({ permissions: [] // No permissions granted
});

7. File System Access:

// For file picker
const [fileChooser] = await Promise.all([ page.waitForEvent('filechooser'), page.click('#upload')
]);
await fileChooser.setFiles('./document.pdf');

💡 Tips:

  • Set permissions trong context creation
  • Different permissions cho different test scenarios
  • Mock permission prompts để avoid manual interaction
  • Test both granted và denied states

Lời Kết

Playwright đang trở thành một trong những automation frameworks phổ biến nhất cho web testing. Thông qua series này, hy vọng bạn sẽ:

  • Nắm vững kiến thức từ cơ bản đến nâng cao
  • Tự tin trong các buổi phỏng vấn
  • Áp dụng hiệu quả vào dự án thực tế
  • Trở thành một phần của cộng đồng Playwright Việt Nam năng động

📚 Bắt đầu hành trình của bạn với: Bài 1: Playwright vs Selenium

💬 Có câu hỏi? Tham gia group Facebook của chúng mình!

Theo dõi series để không bỏ lỡ bài viết mới!

Bình luận

Bài viết tương tự

- vừa được xem lúc

How a browser renders a web page?

Tưởng tượng rằng có một ứng viên đang chuẩn bị CV để đi phỏng vấn, đã chuẩn bị một tâm hồn đẹp và. . Mày râu nhẵn nhụi áo quần bảnh bao. .

0 0 60

- vừa được xem lúc

Bookmarklet - Tạo tính năng để tương tác với trang web thật đơn giản

Có lẽ kỹ thuật này đã xuất hiện từ rất lâu và chắc nhiều người đã biết tới, nhưng thực sự thì đến giờ mình mới được biết đến, cảm thấy nó cực kỳ tiện lợi và thú vị nên muốn chia sẻ lại cho những bạn c

0 0 71

- vừa được xem lúc

CSS parsing trong Browser rendering engine

Như chúng ta đã biết, CSS parsing là 1 bước trong việc chuyển đổi data từ response thành dữ liệu render trên page của rendering engine. <!DOCTYPE html>. <html>. <head>.

0 0 40

- vừa được xem lúc

Trình duyệt render một trang web như thế nào

Render một trang web là quá trình hiển thị trang web bắt đầu từ lúc bạn nhận được dữ liệu từ server đến khi trang web được hiển thị đầy đủ trên màn hình (bao gồm hình ảnh, âm thanh, chữ viết). Quá trì

0 0 81

- vừa được xem lúc

[HTTP] - "The Big Picture in Web world"

Điều gì xảy ra khi ta truy cập một trang web bằng cách sử dụng trình duyệt (Chrome, Firefox, ...) . chỉ là truy cập.

0 0 50

- vừa được xem lúc

10 lý do bạn nên sử dụng trình duyệt Opera

Opera là một trong những trình duyệt được đánh giá thấp nhất hiện nay. Mặc dù nó thường xuất hiện trong danh sách trình duyệt phổ biến nhất, nhưng chỉ một phần nhỏ số người dùng sử dụng nó (W3schools

0 0 43