class Ferrum::Cookies
Public Class Methods
new(page)
click to toggle source
# File lib/ferrum/cookies.rb, line 53 def initialize(page) @page = page end
Public Instance Methods
[](name)
click to toggle source
# File lib/ferrum/cookies.rb, line 62 def [](name) all[name] end
all()
click to toggle source
# File lib/ferrum/cookies.rb, line 57 def all cookies = @page.command("Network.getAllCookies")["cookies"] cookies.map { |c| [c["name"], Cookie.new(c)] }.to_h end
clear()
click to toggle source
# File lib/ferrum/cookies.rb, line 93 def clear @page.command("Network.clearBrowserCookies") true end
remove(name:, **options)
click to toggle source
Supports :url, :domain and :path options
# File lib/ferrum/cookies.rb, line 82 def remove(name:, **options) raise "Specify :domain or :url option" if !options[:domain] && !options[:url] && !default_domain options = options.merge(name: name) options[:domain] ||= default_domain @page.command("Network.deleteCookies", **options) true end
set(name: nil, value: nil, **options)
click to toggle source
# File lib/ferrum/cookies.rb, line 66 def set(name: nil, value: nil, **options) cookie = options.dup cookie[:name] ||= name cookie[:value] ||= value cookie[:domain] ||= default_domain cookie[:httpOnly] = cookie.delete(:httponly) if cookie.key?(:httponly) cookie[:sameSite] = cookie.delete(:samesite) if cookie.key?(:samesite) expires = cookie.delete(:expires).to_i cookie[:expires] = expires if expires > 0 @page.command("Network.setCookie", **cookie)["success"] end
Private Instance Methods
default_domain()
click to toggle source
# File lib/ferrum/cookies.rb, line 100 def default_domain URI.parse(@page.browser.base_url).host if @page.browser.base_url end