### Home Classes Methods

### In Files

- lib/selenium/webdriver/firefox/profile.rb

### Parent

Object

### Methods

- ::default_preferences
- ::from_name
- ::ini
- ::new
- #[]=
- #add_extension
- #add_webdriver_extension
- #assume_untrusted_certificate_issuer=
- #assume_untrusted_certificate_issuer?
- #layout_on_disk
- #load_no_focus_lib?
- #log_file=
- #native_events?
- #port=
- #proxy=
- #secure_ssl?

### Included Modules

- Selenium::WebDriver::ProfileHelper

### Class/Module Index

Quicksearch

- Selenium
- Selenium::Client
- Selenium::Client::Base
- Selenium::Client::CommandError
- Selenium::Client::Driver
- Selenium::Client::Extensions
- Selenium::Client::GeneratedDriver
- Selenium::Client::Idiomatic
- Selenium::Client::JavascriptExpressionBuilder
- Selenium::Client::JavascriptFrameworks
- Selenium::Client::JavascriptFrameworks::JQuery
- Selenium::Client::JavascriptFrameworks::Prototype
- Selenium::Client::Protocol
- Selenium::Client::ProtocolError
- Selenium::Client::SeleniumHelper
- Selenium::Rake
- Selenium::Rake::MissingJarFileError
- Selenium::Rake::ServerTask
- Selenium::Server
- Selenium::Server::Error
- Selenium::WebDriver
- Selenium::WebDriver::ActionBuilder
- Selenium::WebDriver::Alert
- Selenium::WebDriver::Android
- Selenium::WebDriver::Android::Bridge
- Selenium::WebDriver::BridgeHelper
- Selenium::WebDriver::Chrome
- Selenium::WebDriver::Chrome::Bridge
- Selenium::WebDriver::Chrome::Profile
- Selenium::WebDriver::Chrome::Service
- Selenium::WebDriver::Driver
- Selenium::WebDriver::DriverExtensions
- Selenium::WebDriver::DriverExtensions::HasBrowserConnection
- Selenium::WebDriver::DriverExtensions::HasInputDevices
- Selenium::WebDriver::DriverExtensions::HasLocation
- Selenium::WebDriver::DriverExtensions::HasSessionId
- Selenium::WebDriver::DriverExtensions::HasTouchScreen
- Selenium::WebDriver::DriverExtensions::HasWebStorage
- Selenium::WebDriver::DriverExtensions::Rotatable
- Selenium::WebDriver::DriverExtensions::TakesScreenshot
- Selenium::WebDriver::DriverExtensions::UploadsFiles
- Selenium::WebDriver::Element
- Selenium::WebDriver::Error
- Selenium::WebDriver::Error::ElementNotDisplayedError
- Selenium::WebDriver::Error::ElementNotSelectableError
- Selenium::WebDriver::Error::ElementNotVisibleError
- Selenium::WebDriver::Error::ExpectedError
- Selenium::WebDriver::Error::IMEEngineActivationFailedError
- Selenium::WebDriver::Error::IMENotAvailableError
- Selenium::WebDriver::Error::IndexOutOfBoundsError
- Selenium::WebDriver::Error::InvalidCookieDomainError
- Selenium::WebDriver::Error::InvalidElementCoordinatesError
- Selenium::WebDriver::Error::InvalidElementStateError
- Selenium::WebDriver::Error::InvalidSelectorError
- Selenium::WebDriver::Error::JavascriptError
- Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
- Selenium::WebDriver::Error::NoAlertOpenError
- Selenium::WebDriver::Error::NoAlertPresentError
- Selenium::WebDriver::Error::NoCollectionError
- Selenium::WebDriver::Error::NoScriptResultError
- Selenium::WebDriver::Error::NoStringError
- Selenium::WebDriver::Error::NoStringLengthError
- Selenium::WebDriver::Error::NoStringWrapperError
- Selenium::WebDriver::Error::NoSuchCollectionError
- Selenium::WebDriver::Error::NoSuchDocumentError
- Selenium::WebDriver::Error::NoSuchDriverError
- Selenium::WebDriver::Error::NoSuchElementError
- Selenium::WebDriver::Error::NoSuchFrameError
- Selenium::WebDriver::Error::NoSuchWindowError
- Selenium::WebDriver::Error::NullPointerError
- Selenium::WebDriver::Error::ObsoleteElementError
- Selenium::WebDriver::Error::ScriptTimeOutError
- Selenium::WebDriver::Error::ServerError
- Selenium::WebDriver::Error::StaleElementReferenceError
- Selenium::WebDriver::Error::TimeOutError
- Selenium::WebDriver::Error::UnableToSetCookieError
- Selenium::WebDriver::Error::UnexpectedJavascriptError
- Selenium::WebDriver::Error::UnhandledAlertError
- Selenium::WebDriver::Error::UnhandledError
- Selenium::WebDriver::Error::UnknownCommandError
- Selenium::WebDriver::Error::UnknownError
- Selenium::WebDriver::Error::UnsupportedOperationError
- Selenium::WebDriver::Error::WebDriverError
- Selenium::WebDriver::Error::XPathLookupError
- Selenium::WebDriver::FileReaper
- Selenium::WebDriver::Firefox
- Selenium::WebDriver::Firefox::Binary
- Selenium::WebDriver::Firefox::Bridge
- Selenium::WebDriver::Firefox::Extension
- Selenium::WebDriver::Firefox::Launcher
- Selenium::WebDriver::Firefox::Profile
- Selenium::WebDriver::Firefox::ProfilesIni
- Selenium::WebDriver::Firefox::SocketLock
- Selenium::WebDriver::Firefox::Util
- Selenium::WebDriver::HTML5
- Selenium::WebDriver::HTML5::LocalStorage
- Selenium::WebDriver::HTML5::SessionStorage
- Selenium::WebDriver::HTML5::SharedWebStorage
- Selenium::WebDriver::IE
- Selenium::WebDriver::IE::Bridge
- Selenium::WebDriver::IE::Server
- Selenium::WebDriver::IPhone
- Selenium::WebDriver::IPhone::Bridge
- Selenium::WebDriver::JsonHelper
- Selenium::WebDriver::Keyboard
- Selenium::WebDriver::Keys
- Selenium::WebDriver::LogEntry
- Selenium::WebDriver::Mouse
- Selenium::WebDriver::Navigation
- Selenium::WebDriver::Opera
- Selenium::WebDriver::Opera::Bridge
- Selenium::WebDriver::Opera::Service
- Selenium::WebDriver::Options
- Selenium::WebDriver::PhantomJS
- Selenium::WebDriver::PhantomJS::Bridge
- Selenium::WebDriver::PhantomJS::Service
- Selenium::WebDriver::Platform
- Selenium::WebDriver::PortProber
- Selenium::WebDriver::ProfileHelper
- Selenium::WebDriver::ProfileHelper::ClassMethods
- Selenium::WebDriver::Proxy
- Selenium::WebDriver::Remote
- Selenium::WebDriver::Remote::Bridge
- Selenium::WebDriver::Remote::Capabilities
- Selenium::WebDriver::Remote::Http
- Selenium::WebDriver::Remote::Http::Common
- Selenium::WebDriver::Remote::Http::Curb
- Selenium::WebDriver::Remote::Http::Default
- Selenium::WebDriver::Remote::Http::Persistent
- Selenium::WebDriver::Remote::Response
- Selenium::WebDriver::Safari
- Selenium::WebDriver::Safari::Bridge
- Selenium::WebDriver::Safari::Browser
- Selenium::WebDriver::Safari::Extension
- Selenium::WebDriver::Safari::Server
- Selenium::WebDriver::SearchContext
- Selenium::WebDriver::SocketPoller
- Selenium::WebDriver::Support
- Selenium::WebDriver::Support::AbstractEventListener
- Selenium::WebDriver::Support::BlockEventListener
- Selenium::WebDriver::Support::Color
- Selenium::WebDriver::Support::EventFiringBridge
- Selenium::WebDriver::Support::Select
- Selenium::WebDriver::Support::Select::Escaper
- Selenium::WebDriver::TargetLocator
- Selenium::WebDriver::Timeouts
- Selenium::WebDriver::TouchActionBuilder
- Selenium::WebDriver::TouchScreen
- Selenium::WebDriver::Wait
- Selenium::WebDriver::Window
- Selenium::WebDriver::Zipper
- Base64
- Dir
- SocketError
- String

No matching classes.

# Selenium::WebDriver::Firefox::Profile

### Constants

VALID_PREFERENCE_TYPES
WEBDRIVER_EXTENSION_PATH
WEBDRIVER_PREFS

### Attributes

load_no_focus_lib[W]
log_file[R]
name[R]
native_events[W]
secure_ssl[W]

### Public Class Methods

default_preferences() click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 29
    def default_preferences
      @default_preferences ||= WebDriver.json_load(
        File.read(File.expand_path("#{WebDriver.root}/selenium/webdriver/firefox/extension/prefs.json"))
      ).freeze
    end

from_name(name) click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 25
    def from_name(name)
      ini[name]
    end

ini() click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 21
    def ini
      @ini ||= ProfilesIni.new
    end

new(model = nil) click to toggle source

Create a new Profile instance

@example User configured profile

    profile = Selenium::WebDriver::Firefox::Profile.new
    profile['network.proxy.http'] = 'localhost'
    profile['network.proxy.http_port'] = 9090

    driver = Selenium::WebDriver.for :firefox, :profile => profile

    # File lib/selenium/webdriver/firefox/profile.rb, line 48
    def initialize(model = nil)
      @model = verify_model(model)

      model_prefs = read_model_prefs

      if model_prefs.empty?
        @native_events     = DEFAULT_ENABLE_NATIVE_EVENTS
        @secure_ssl        = DEFAULT_SECURE_SSL
        @untrusted_issuer  = DEFAULT_ASSUME_UNTRUSTED_ISSUER
        @load_no_focus_lib = DEFAULT_LOAD_NO_FOCUS_LIB

        @additional_prefs  = {}
      else
        # TODO: clean this up
        @native_events     = model_prefs.delete(WEBDRIVER_PREFS[:native_events]) == "true"
        @secure_ssl        = model_prefs.delete(WEBDRIVER_PREFS[:untrusted_certs]) != "true"
        @untrusted_issuer  = model_prefs.delete(WEBDRIVER_PREFS[:untrusted_issuer]) == "true"
        @load_no_focus_lib = model_prefs.delete(WEBDRIVER_PREFS[:load_no_focus_lib]) == "true" # not stored in profile atm, so will always be false.
        @additional_prefs  = model_prefs
      end

      @extensions        = {}
    end

### Public Instance Methods

[]=(key, value) click to toggle source

Set a preference for this particular profile.

@see kb.mozillazine.org/About:config_entries @see preferential.mozdev.org/preferences.html

    # File lib/selenium/webdriver/firefox/profile.rb, line 92
    def []=(key, value)
      unless VALID_PREFERENCE_TYPES.any? { |e| value.kind_of? e }
        raise TypeError, "expected one of #{VALID_PREFERENCE_TYPES.inspect}, got #{value.inspect}:#{value.class}"
      end

      if value.kind_of?(String) && Util.stringified?(value)
        raise ArgumentError, "preference values must be plain strings: #{key.inspect} => #{value.inspect}"
      end

      @additional_prefs[key.to_s] = value
    end

add_extension(path, name = extension_name_for(path)) click to toggle source

Add the extension (directory, .zip or .xpi) at the given path to the profile.

    # File lib/selenium/webdriver/firefox/profile.rb, line 123
    def add_extension(path, name = extension_name_for(path))
      @extensions[name] = Extension.new(path)
    end

add_webdriver_extension() click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 113
    def add_webdriver_extension
      unless @extensions.has_key?(:webdriver)
        add_extension(WEBDRIVER_EXTENSION_PATH, :webdriver)
      end
    end

assume_untrusted_certificate_issuer=(bool) click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 143
    def assume_untrusted_certificate_issuer=(bool)
      @untrusted_issuer = bool
    end

assume_untrusted_certificate_issuer?() click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 139
    def assume_untrusted_certificate_issuer?
      @untrusted_issuer == true
    end

layout_on_disk() click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 72
    def layout_on_disk
      profile_dir = @model ? create_tmp_copy(@model) : Dir.mktmpdir("webdriver-profile")
      FileReaper << profile_dir

      install_extensions(profile_dir)
      delete_lock_files(profile_dir)
      delete_extensions_cache(profile_dir)
      update_user_prefs_in(profile_dir)

      profile_dir
    end

load_no_focus_lib?() click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 131
    def load_no_focus_lib?
      @load_no_focus_lib == true
    end

log_file=(file) click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 108
    def log_file=(file)
      @log_file = file
      self[WEBDRIVER_PREFS[:log_file]] = file
    end

native_events?() click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 127
    def native_events?
      @native_events == true
    end

port=(port) click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 104
    def port=(port)
      self[WEBDRIVER_PREFS[:port]] = port
    end

proxy=(proxy) click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 147
    def proxy=(proxy)
      unless proxy.kind_of? Proxy
        raise TypeError, "expected #{Proxy.name}, got #{proxy.inspect}:#{proxy.class}"
      end

      case proxy.type
      when :manual
        self['network.proxy.type'] = 1

        set_manual_proxy_preference "ftp", proxy.ftp
        set_manual_proxy_preference "http", proxy.http
        set_manual_proxy_preference "ssl", proxy.ssl

        if proxy.no_proxy
          self["network.proxy.no_proxies_on"] = proxy.no_proxy
        else
          self["network.proxy.no_proxies_on"] = ""
        end
      when :pac
        self['network.proxy.type'] = 2
        self['network.proxy.autoconfig_url'] = proxy.pac
      when :auto_detect
        self['network.proxy.type'] = 4
      else
        raise ArgumentError, "unsupported proxy type #{proxy.type}"
      end

      proxy
    end

secure_ssl?() click to toggle source

    # File lib/selenium/webdriver/firefox/profile.rb, line 135
    def secure_ssl?
      @secure_ssl == true
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.