123456789_123456789_123456789_123456789_123456789_

Module: Selenium::WebDriver::Firefox::Features

Relationships & Source Files
Defined in: rb/lib/selenium/webdriver/firefox/features.rb

Constant Summary

  • FIREFOX_COMMANDS =
    # File 'rb/lib/selenium/webdriver/firefox/features.rb', line 24
    {
      get_context: [:get, 'session/:session_id/moz/context'],
      set_context: [:post, 'session/:session_id/moz/context'],
      install_addon: [:post, 'session/:session_id/moz/addon/install'],
      uninstall_addon: [:post, 'session/:session_id/moz/addon/uninstall'],
      full_page_screenshot: [:get, 'session/:session_id/moz/screenshot/full']
    }.freeze

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#context (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/firefox/features.rb', line 75

def context
  execute :get_context
end

#context=(context) (rw)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/firefox/features.rb', line 71

def context=(context)
  execute :set_context, {}, {context: context}
end

Instance Method Details

#command_list

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/firefox/features.rb', line 32

def command_list
  FIREFOX_COMMANDS.merge(self.class::COMMANDS)
end

#commands(command)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/firefox/features.rb', line 36

def commands(command)
  command_list[command]
end

#full_screenshot

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/firefox/features.rb', line 67

def full_screenshot
  execute :full_page_screenshot
end

#install_addon(path, temporary)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/firefox/features.rb', line 40

def install_addon(path, temporary)
  payload = {addon: encode_extension(path)}
  payload[:temporary] = temporary unless temporary.nil?
  execute :install_addon, {}, payload
end

#install_web_extension(path, allow_private_browsing: nil, permanent: nil)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/firefox/features.rb', line 50

def install_web_extension(path, allow_private_browsing: nil, permanent: nil)
  unless bidi?
    temporary = !permanent unless permanent.nil?
    options = {temporary: temporary, allowPrivateBrowsing: allow_private_browsing}.compact
    return WebDriver::WebExtension.new(execute(:install_addon, {}, {addon: encode_extension(path), **options}))
  end

  options = {allow_private_browsing:, permanent:}.compact
  result = web_extension.moz.install(extension_data: web_extension_data(path), **options)
  WebDriver::WebExtension.new(result.extension)
end

#uninstall_addon(id)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/firefox/features.rb', line 46

def uninstall_addon(id)
  execute :uninstall_addon, {}, {id: id}
end

#uninstall_web_extension(extension_id)

[ GitHub ]

  
# File 'rb/lib/selenium/webdriver/firefox/features.rb', line 62

def uninstall_web_extension(extension_id)
  bidi? ? web_extension.uninstall(extension: extension_id) : uninstall_addon(extension_id)
  nil
end