Class: Browserctl::Driver::CDP

Inherits:
Object
  • 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

Returns a new instance of CDP.



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

def initialize(headless: true, browser: "chrome")
  @headless = headless
  @browser  = browser
  @ferrum   = Ferrum::Browser.new(**ferrum_options)
end

Instance Method Details

#create_pageObject



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

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

#devtools_info(page) ⇒ Object



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

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

#headed?Boolean

Returns:

  • (Boolean)


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

def headed?
  !@headless
end

#quitObject



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

def quit
  @ferrum.quit
end

#supports?(capability) ⇒ Boolean

Returns:

  • (Boolean)


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

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