Class: Browserctl::Driver::CDP

Inherits:
Base
  • Object
show all
Defined in:
lib/browserctl/driver/cdp.rb

Constant Summary collapse

BRAVE_PATHS =
{
  darwin: [
    "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",
    File.expand_path("~/Applications/Brave Browser.app/Contents/MacOS/Brave Browser")
  ],
  linux: [
    "/usr/bin/brave-browser",
    "/usr/bin/brave",
    "/snap/bin/brave"
  ],
  windows: [
    "C:/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe",
    "C:/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"
  ]
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(headless: true, browser: "chrome") ⇒ CDP

rubocop:disable Lint/MissingSuper



27
28
29
30
31
# File 'lib/browserctl/driver/cdp.rb', line 27

def initialize(headless: true, browser: "chrome") # rubocop:disable Lint/MissingSuper
  @headless = headless
  @browser  = browser
  @ferrum   = Ferrum::Browser.new(**ferrum_options)
end

Instance Method Details

#create_pageObject



33
34
35
# File 'lib/browserctl/driver/cdp.rb', line 33

def create_page
  CDPPage.new(@ferrum.create_page)
end

#devtools_info(page) ⇒ Object



49
50
51
52
53
# File 'lib/browserctl/driver/cdp.rb', line 49

def devtools_info(page)
  port      = @ferrum.process.port
  target_id = page.target_id
  { port: port, target_id: target_id }
end

#headed?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/browserctl/driver/cdp.rb', line 41

def headed?
  !@headless
end

#quitObject



37
38
39
# File 'lib/browserctl/driver/cdp.rb', line 37

def quit
  @ferrum.quit
end

#supports?(capability) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/browserctl/driver/cdp.rb', line 45

def supports?(capability)
  capability == :devtools
end