Class: Capybara::Apparition::DevToolsProtocol::Target

Inherits:
Object
  • Object
show all
Defined in:
lib/capybara/apparition/dev_tools_protocol/target.rb

Instance Method Summary collapse

Constructor Details

#initialize(browser, info) ⇒ Target

Returns a new instance of Target.



8
9
10
11
12
# File 'lib/capybara/apparition/dev_tools_protocol/target.rb', line 8

def initialize(browser, info)
  @browser = browser
  @info = info.dup
  @page = nil
end

Instance Method Details

#closeObject



52
53
54
# File 'lib/capybara/apparition/dev_tools_protocol/target.rb', line 52

def close
  @browser.command('Target.closeTarget', targetId: id)
end

#context_idObject



28
29
30
# File 'lib/capybara/apparition/dev_tools_protocol/target.rb', line 28

def context_id
  @info['browserContextId']
end

#idObject



24
25
26
# File 'lib/capybara/apparition/dev_tools_protocol/target.rb', line 24

def id
  @info['targetId']
end

#infoObject



14
15
16
# File 'lib/capybara/apparition/dev_tools_protocol/target.rb', line 14

def info
  @info.dup.freeze
end

#pageObject



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/capybara/apparition/dev_tools_protocol/target.rb', line 40

def page
  @page ||= begin
    if info['type'] == 'page'
      Page.create(@browser, create_session, id,
                  ignore_https_errors: @browser.ignore_https_errors,
                  js_errors: @browser.js_errors).inherit(@info.delete('inherit'))
    else
      nil
    end
  end
end

#titleObject



32
33
34
# File 'lib/capybara/apparition/dev_tools_protocol/target.rb', line 32

def title
  @info['title']
end

#update(new_info) ⇒ Object



18
19
20
21
22
# File 'lib/capybara/apparition/dev_tools_protocol/target.rb', line 18

def update(new_info)
  @info ||= {}
  @info.merge!(new_info)
  info
end

#urlObject



36
37
38
# File 'lib/capybara/apparition/dev_tools_protocol/target.rb', line 36

def url
  @info['url']
end