Class: Capybara::Apparition::DevToolsProtocol::TargetManager

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

Instance Method Summary collapse

Constructor Details

#initialize(browser) ⇒ TargetManager

Returns a new instance of TargetManager.



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

def initialize(browser)
  @browser = browser
  @targets = {}
end

Instance Method Details

#add(id, target) ⇒ Object

Raises:

  • (ArgumentError)


21
22
23
24
25
26
27
28
29
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 21

def add(id, target)
  raise ArgumentError, 'Target already exists' if @targets.key?(id)

  @targets[id] = if target.is_a? DevToolsProtocol::Target
    target
  else
    DevToolsProtocol::Target.new(@browser, target)
  end
end

#delete(id) ⇒ Object



31
32
33
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 31

def delete(id)
  @targets.delete(id)
end

#get(id) ⇒ Object



13
14
15
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 13

def get(id)
  @targets[id]
end

#of_type(type) ⇒ Object



17
18
19
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 17

def of_type(type)
  @targets.select { |_id, target| target.info['type'] == type }
end

#pagesObject



35
36
37
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 35

def pages
  @targets.values.select { |target| target.info['type'] == 'page' }.map(&:page)
end

#target?(id) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 39

def target?(id)
  @targets.key?(id)
end

#window_handlesObject



43
44
45
# File 'lib/capybara/apparition/dev_tools_protocol/target_manager.rb', line 43

def window_handles
  @targets.values.select { |target| target.info['type'] == 'page' }.map(&:id).compact
end