YusukeIwaki/puppeteer-ruby

page.set_cookie

Toucouleur66 opened this issue · 1 comments

def puppeting(url)
  Puppeteer.launch(
    headless: true,
  ) do |browser|
    page = browser.new_page
    # ap page.methods
    page.viewport = Puppeteer::Viewport.new(width: 1980, height: 1080)
    page.default_navigation_timeout = 0
    page.set_cookie(
      {
        token: "123456",
      }
    )
    wait_until = "domcontentloaded"
    page.goto(url, wait_until: wait_until, timeout: 0)
    page.screenshot(path: "tmp/#{Time.now.to_i}.png")
  end
end

puppeting("https://www.yoursite.com")

Return:

Puppeteer::Connection::ProtocolError (Protocol error (Network.deleteCookies): Invalid parameters Failed to deserialize params.name - BINDINGS: mandatory field missing at position 79)

@Toucouleur66 Sorry for late response,

set_cookie requires a parameter like { name: 'token', value: '123456' } instead of { token: '123456' }.
This parameter spec is ported from the original JS version of Puppeteer. https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md#pagesetcookiecookies