Class: Puppeteer::BrowserContext

Inherits:
Object
  • Object
show all
Includes:
EventCallbackable
Defined in:
lib/puppeteer/browser_context.rb

Constant Summary collapse

EVENT_MAPPINGS =
{
  disconnected: 'Events.BrowserContext.Disconnected',
  targetcreated: 'Events.BrowserContext.TargetCreated',
  targetchanged: 'Events.BrowserContext.TargetChanged',
  targetdestroyed: 'Events.BrowserContext.TargetDestroyed',
}

Instance Method Summary collapse

Methods included from EventCallbackable

#add_event_listener, #emit_event, #observe_first, #on_event, #remove_event_listener

Constructor Details

#initialize(connection, browser, context_id) ⇒ BrowserContext

Returns a new instance of BrowserContext.

Parameters:



8
9
10
11
12
# File 'lib/puppeteer/browser_context.rb', line 8

def initialize(connection, browser, context_id)
  @connection = connection
  @browser = browser
  @id = context_id
end

Instance Method Details

#async_wait_for_target(predicate: , timeout: nil) ⇒ Object

Parameters:



56
# File 'lib/puppeteer/browser_context.rb', line 56

define_async_method :async_wait_for_target

#browserBrowser

Returns:



110
111
112
# File 'lib/puppeteer/browser_context.rb', line 110

def browser
  @browser
end

#closeObject



114
115
116
117
118
119
# File 'lib/puppeteer/browser_context.rb', line 114

def close
  unless @id
    raise 'Non-incognito profiles cannot be closed!'
  end
  @browser.dispose_context(@id)
end

#incognito?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/puppeteer/browser_context.rb', line 63

def incognito?
  !!@id
end

#new_pageFuture<Puppeteer::Page>

Returns:



105
106
107
# File 'lib/puppeteer/browser_context.rb', line 105

def new_page
  @browser.create_page_in_context(@id)
end

#on(event_name, &block) ⇒ Object

Parameters:

  • event_name (Symbol)

    either of :disconnected, :targetcreated, :targetchanged, :targetdestroyed



22
23
24
25
26
27
28
# File 'lib/puppeteer/browser_context.rb', line 22

def on(event_name, &block)
  unless EVENT_MAPPINGS.has_key?(event_name.to_sym)
    raise ArgumentError.new("Unknown event name: #{event_name}. Known events are #{EVENT_MAPPINGS.keys.join(", ")}")
  end

  add_event_listener(EVENT_MAPPINGS[event_name.to_sym], &block)
end

#once(event_name, &block) ⇒ Object

Parameters:

  • event_name (Symbol)


31
32
33
34
35
36
37
# File 'lib/puppeteer/browser_context.rb', line 31

def once(event_name, &block)
  unless EVENT_MAPPINGS.has_key?(event_name.to_sym)
    raise ArgumentError.new("Unknown event name: #{event_name}. Known events are #{EVENT_MAPPINGS.keys.join(", ")}")
  end

  observe_first(EVENT_MAPPINGS[event_name.to_sym], &block)
end

#pages!Promise<!Array<!Puppeteer.Page>>

Returns:



59
60
61
# File 'lib/puppeteer/browser_context.rb', line 59

def pages
  targets.select { |target| target.type == 'page' }.map(&:page).reject { |page| !page }
end

#targets!Array<!Target>

Returns target.

Returns:

  • (!Array<!Target>)

    target



40
41
42
# File 'lib/puppeteer/browser_context.rb', line 40

def targets
  @browser.targets.select { |target| target.browser_context == self }
end

#wait_for_target(predicate:, timeout: nil) ⇒ Puppeteer::Target

Parameters:

Returns:



46
47
48
49
50
51
# File 'lib/puppeteer/browser_context.rb', line 46

def wait_for_target(predicate:, timeout: nil)
  @browser.wait_for_target(
    predicate: ->(target) { target.browser_context == self && predicate.call(target) },
    timeout: timeout,
  )
end