Class: Ferrum::Target

Inherits:
Object
  • Object
show all
Defined in:
lib/ferrum/target.rb

Constant Summary collapse

NEW_WINDOW_WAIT =
ENV.fetch("FERRUM_NEW_WINDOW_WAIT", 0.3).to_f

Instance Method Summary collapse

Constructor Details

#initialize(browser, params = nil) ⇒ Target

Returns a new instance of Target.



7
8
9
10
# File 'lib/ferrum/target.rb', line 7

def initialize(browser, params = nil)
  @browser = browser
  @params = params
end

Instance Method Details

#context_idObject



44
45
46
# File 'lib/ferrum/target.rb', line 44

def context_id
  @params["browserContextId"]
end

#idObject



24
25
26
# File 'lib/ferrum/target.rb', line 24

def id
  @params["targetId"]
end

#opener_idObject



40
41
42
# File 'lib/ferrum/target.rb', line 40

def opener_id
  @params["openerId"]
end

#pageObject



16
17
18
19
20
21
22
# File 'lib/ferrum/target.rb', line 16

def page
  @page ||= begin
    # Dirty hack because new window doesn't have events at all
    sleep(NEW_WINDOW_WAIT) if window?
    Page.new(id, @browser)
  end
end

#titleObject



32
33
34
# File 'lib/ferrum/target.rb', line 32

def title
  @params["title"]
end

#typeObject



28
29
30
# File 'lib/ferrum/target.rb', line 28

def type
  @params["type"]
end

#update(params) ⇒ Object



12
13
14
# File 'lib/ferrum/target.rb', line 12

def update(params)
  @params = params
end

#urlObject



36
37
38
# File 'lib/ferrum/target.rb', line 36

def url
  @params["url"]
end

#window?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/ferrum/target.rb', line 48

def window?
  !!opener_id
end