Object
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 47 def from_name(name) ini[name] end
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 43 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 firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 64 def initialize(directory = nil) @directory = directory ? create_tmp_copy(directory) : Dir.mktmpdir("webdriver-profile") unless File.directory? @directory raise Error::WebDriverError, "Profile directory does not exist: #{@directory.inspect}" end FileReaper << @directory # TODO: replace constants with options hash @port = DEFAULT_PORT @extension_source = DEFAULT_EXTENSION_SOURCE @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 = {} end
Set a preference for this particular profile. @see preferential.mozdev.org/preferences.html
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 89 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 = %{"#{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
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 106 def absolute_path if Platform.win? directory.gsub("/", "\\") else directory end end
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 132 def add_webdriver_extension(force_creation = false) ext_path = File.join(extensions_dir, EXTENSION_NAME) if File.exists?(ext_path) return unless force_creation end FileUtils.rm_rf ext_path FileUtils.mkdir_p File.dirname(ext_path), :mode => 0700 FileUtils.cp_r @extension_source, ext_path from_to = XPTS + SHARED if native_events? case Platform.os when :linux NATIVE_LINUX.each do |lib| from_to << lib end when :windows from_to << NATIVE_WINDOWS else raise Error::WebDriverError, "can't enable native events on #{Platform.os.inspect}" end end if load_no_focus_lib? from_to += NO_FOCUS modify_link_library_path(NO_FOCUS.map { |source, dest| File.join(ext_path, File.dirname(dest)) }) end from_to.each do |source, destination| dest = File.join(ext_path, destination) FileUtils.mkdir_p File.dirname(dest) FileUtils.cp source, dest end delete_extensions_cache end
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 214 def assume_untrusted_certificate_issuer=(bool) @untrusted_issuer = bool end
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 210 def assume_untrusted_certificate_issuer? @untrusted_issuer == true end
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 182 def delete_extensions_cache cache = File.join(directory, "extensions.cache") FileUtils.rm_f cache if File.exist?(cache) end
TODO: add_extension
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 174 def extensions_dir @extensions_dir ||= File.join(directory, "extensions") end
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 202 def load_no_focus_lib? @load_no_focus_lib == true end
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 187 def modify_link_library_path(paths) old_path = ENV['LD_LIBRARY_PATH'] unless [nil, ''].include?(old_path) paths << old_path end ENV['LD_LIBRARY_PATH'] = paths.join(File::PATH_SEPARATOR) ENV['LD_PRELOAD'] = NO_FOCUS_LIBRARY_NAME end
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 198 def native_events? @native_events == true end
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 206 def secure_ssl? @secure_ssl == true end
# File firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb, line 114 def update_user_prefs prefs = current_user_prefs prefs.merge! OVERRIDABLE_PREFERENCES prefs.merge! @additional_prefs prefs.merge! DEFAULT_PREFERENCES prefs['webdriver_firefox_port'] = @port prefs['webdriver_accept_untrusted_certs'] = !secure_ssl? prefs['webdriver_enable_native_events'] = native_events? prefs['webdriver_assume_untrusted_issuer'] = assume_untrusted_certificate_issuer? # If the user sets the home page, we should also start up there prefs["startup.homepage_welcome_url"] = prefs["browser.startup.homepage"] write_prefs prefs end
Generated with the Darkfish Rdoc Generator 2.