rubycdp / ferrum

Headless Chrome Ruby API
https://ferrum.rubycdp.com
MIT License
1.69k stars 120 forks source link

Is there a way to set site permissions? #376

Closed brian-kephart closed 1 year ago

brian-kephart commented 1 year ago

Thanks for this great library!

My specific use case for altering site permissions is that I am testing a subscription workflow for push notifications, and I would like to test the user experience when the value of Notification.permission is "default", "granted", or "denied".

# in headless mode
browser.evaluate("Notification.permission") # => "denied"

# in non-headless mode
browser.evaluate("Notification.permission") # => "default"

I'm wondering if there is a way to set this value to "granted", or to modify site permissions in general. I could not find anything relevant to this in the README, the code, or the command line args.

route commented 1 year ago

@brian-kephart hey, you could try set permissions with https://chromedevtools.github.io/devtools-protocol/tot/Browser/#method-grantPermissions

browser.command("Browser.grantPermissions", permissions: ['notifications'], origin: 'https://example.com')

If that works please leave feedback or maybe send a PR ;)