# File lib/selenium/webdriver/firefox/profile.rb, line 24 def from_name(name) ini[name] end
# File lib/selenium/webdriver/firefox/profile.rb, line 20 def ini @ini ||= ProfilesIni.new end
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 41 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
Set a preference for this particular profile. @see preferential.mozdev.org/preferences.html
# File lib/selenium/webdriver/firefox/profile.rb, line 83 def []=(key, value) case value when String if Util.stringified?(value) raise ArgumentError, "preference values must be plain strings: #{key.inspect} => #{value.inspect}" end value = %Q{"#{value}"} when TrueClass, FalseClass, Integer, Float value = value.to_s else raise TypeError, "invalid preference: #{value.inspect}:#{value.class}" end @additional_prefs[key.to_s] = value end
Add the extension (directory, .zip or .xpi) at the given path to the profile.
# File lib/selenium/webdriver/firefox/profile.rb, line 119 def add_extension(path, name = extension_name_for(path)) @extensions[name] = Extension.new(path) end
# File lib/selenium/webdriver/firefox/profile.rb, line 109 def add_webdriver_extension unless @extensions.has_key?(:webdriver) add_extension(WEBDRIVER_EXTENSION_PATH, :webdriver) end end
# File lib/selenium/webdriver/firefox/profile.rb, line 139 def assume_untrusted_certificate_issuer=(bool) @untrusted_issuer = bool end
# File lib/selenium/webdriver/firefox/profile.rb, line 135 def assume_untrusted_certificate_issuer? @untrusted_issuer == true end
# File lib/selenium/webdriver/firefox/profile.rb, line 65 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
# File lib/selenium/webdriver/firefox/profile.rb, line 127 def load_no_focus_lib? @load_no_focus_lib == true end
# File lib/selenium/webdriver/firefox/profile.rb, line 104 def log_file=(file) @log_file = file self[WEBDRIVER_PREFS[:log_file]] = file end
# File lib/selenium/webdriver/firefox/profile.rb, line 123 def native_events? @native_events == true end
# File lib/selenium/webdriver/firefox/profile.rb, line 100 def port=(port) self[WEBDRIVER_PREFS[:port]] = port end
# File lib/selenium/webdriver/firefox/profile.rb, line 143 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
# File lib/selenium/webdriver/firefox/profile.rb, line 131 def secure_ssl? @secure_ssl == true end